time limit: 1 sec memory limit: 128 mb
submit: 209 solved: 36
小y前段時間剛剛做完連續子串和問題,相信大家對連續子串和也都不陌生,現在小y又碰到了乙個新的難題,給定n個整數,求至少k個數連續的最大和為多少?
若干組測試資料,每組資料第一行給出兩個數n(1<=n<=10^6),k(1<=k<=n)。接下來一行n個數字,分別是a1,a2...an,對於每個數滿足-1000<=ai<=1000。
輸出長度大於等於k的連續整數和值中最大的乙個。
5 3-2 3 6 0 1
10分析:
典型貪心,要求最少k個連續整數和的最大值,從第k個數開始列舉每乙個數字作為結束點。保留前i位數的字首和為sum[i],對於以i為結束的序列,其值為
sum[i]-sum[i-k], sum[i]-sum[i-k-1], sum[i]-sum[i-k-2], sum[i]-sum[1], sum[0]之一,那麼我們只需要對每乙個i保留sum[0]到sum[i-k]的最小值就可以了
1 #include2 #include3 #include4 #include5using
namespace
std;67
const
int maxn = 1e6+10;8
const
int inf = 0x3f3f3f3f;9
10int
n,k;
11int
num[maxn];
1213
intsolve()
21return
ans;22}
2324
intmain()
33 cout35fclose(stdin);
36fclose(stdout);
37return0;
38 }
523 連續的子陣列和
解法一 字首和的暴力搜尋 o n 2 我們遍歷每乙個連續的序列,判斷他是否滿足條件,我們使用字首和 這種解法相信不用多說就會的 public boolean checksubarraysum int nums,int k 迴圈處理每一段連續的序列 for int i 0 i nums.length ...
(7)連續子陣列問題
include using namespace std 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因...
LeetCode523 連續子陣列和
1 未考慮的情況 k 0的情況,一般涉及到 和 都要優先考慮到除數為0的情況。k 0且陣列中有連續兩個0的情況,返回true 雙層迴圈,複雜度 o n 2 package com.leetcode.dp public class leet523 system.out.println checksub...