給定乙個整數陣列和乙個整數 k,找出k 個不重疊子陣列使得它們的和最大。每個子陣列的數字在陣列中的位置應該是連續的。
返回最大的和。
注意事項
子陣列最少包含乙個數
您在真實的面試中是否遇到過這個題?
yes
樣例給出陣列[-1,4,-2,3,-2,3]
以及 k =2
,返回8
點題:邊界條件,很巧妙
class solution
vector> sums(nums.size() + 1, vector(k + 1, 0));
for (int j = 1; j <= k; j++) }}
return sums[nums.size()][k];
}};
類似的題:
另一種解法:
子陣列最大和
看到的乙個面試題。有很多人已經寫過,在此記下,明天給出拓展。題目 輸入乙個整型陣列,陣列裡有正數也有負數,陣列中連續的乙個或多個整數組成為子陣列,求有最大和的子陣列。要求 時間複雜度o n 如下 include using namespace std int main void int size s...
子陣列最大和
設sum i 為以第i個元素結尾且和最大的連續子陣列。假設對於元素i,所有以它前面的元素結尾的子陣列的長度都已經求得,那麼以第i個元素結尾且和最大的連續子陣列實際上,要麼是以第i 1個元素結尾且和最大的連續子陣列加上這個元素,要麼是只包含第i個元素,即sum i max sum i 1 a i a ...
子陣列最大和
思路 隨機產生5個數存在陣列a裡,定義陣列b來儲存子陣列的和,求和先求以第乙個隨機數開頭的所有情況,再求以第二個數開頭的所有情況,以此類推,例如 隨機數為1,2,3,4,5 先求 1,2,3,4,5 1,2,3,4 1,2,3 1,2這幾個子陣列的和,然後繼續求 2,3,4,5 2,3,4 2,3以...