牛客題霸--連續子陣列的最大和
連續子陣列的最大和
題目連結
Solution
最大子段和問題,可以使用動態規劃解決此問題。
設
d
p
[
i
]
dp[i]
dp[i]表示以i結束的子段的最大子段和。
所以到i時有兩種選擇,和前面的最大子段結合,自己構成一個新的子段。
得到轉移方程
d
p
i
=
m
a
x
{
d
p
i
−
1
+
a
r
r
a
y
i
,
a
r
r
a
y
i
}
dp_i = max\{dp_{i - 1} + array_i, array_i\}
dpi=max{dpi−1+arrayi,arrayi}
Code
class Solution {
public:
int FindGreatestSumOfSubArray(vector<int> array) {
int n = array.size();
int dp[n + 5];
dp[0] = array[0];
for (int i = 1; i < n; ++i) {
dp[i] = max(array[i], dp[i - 1] + array[i]);
}
int ans = -1e9;
for (int i = 0; i < n; ++i) ans = max(ans, dp[i]);
return ans;
}
};
相關文章
- 連續子陣列的最大和陣列
- Maximum Subarray 連續子陣列最大和陣列
- 【劍指offer】連續子陣列的最大和陣列
- [每日一題] 第十五題:連續子陣列的最大和每日一題陣列
- 劍指offer-例題 連續子陣列的最大和陣列
- JZ-030-連續子陣列的最大和陣列
- 每日一練(22):連續子陣列的最大和陣列
- 劍指 Offer 42.連續子陣列的最大和陣列
- 劍指Offer-連續子陣列中的最大和陣列
- 劍指office--31. 連續子陣列的最大和陣列
- 《劍指Offer》- 連續子陣列的最大和或最小和陣列
- 牛客題霸 [最長公共子串]C++題解/答案C++
- 劍指Offer:JZ30-連續子陣列最大和(解題思路+Java程式碼)陣列Java
- 【演算法拾遺】三種方法求連續子陣列的最大和演算法陣列
- 一維子陣列最大和陣列
- 最短無序連續子陣列陣列
- 最大連續子陣列和的實現陣列
- 求子陣列的最大和問題陣列
- 演算法學習-零子陣列,最大連續子陣列演算法陣列
- 最大連續子陣列和求解問題(C語言)陣列C語言
- Google 面試題 | 3個非重複子陣列最大和Go面試題陣列
- 求子陣列的最大和陣列
- leetcode最短無序連續子陣列LeetCode陣列
- 最大連續子陣列和(最大子段和)陣列
- 牛客網 Coincidence(最長公共子串LCS板題)IDE
- 牛客題霸NC132環形連結串列的約瑟夫問題Java題解Java
- 演算法學習-數字連續的子陣列演算法陣列
- 【LeetCode動態規劃#14】子序列系列題(最長遞增子序列、最長連續遞增序列、最長重複子陣列、最長公共子序列)LeetCode動態規劃陣列
- 雙指標查詢陣列的連續規律子陣列問題指標陣列
- 牛客題霸 [括號序列] C++題解/答案C++
- 【leetcode】53. Maximum Subarray 連續子序列的最大和LeetCode
- C++陣列的連續性C++陣列
- 978 最長湍流子陣列陣列
- 給出一個由[-100,100]之間整陣列成的陣列,求其相加和最大的連續子陣列 輸入 一個連續整陣列成的陣列 輸出 子陣列相加的最大值 樣例輸入 -......陣列
- 演算法筆記_043:最大連續子陣列和(Java)演算法筆記陣列Java
- [LeetCode] Maximum Product Subarray 求連續子陣列的最大乘積LeetCode陣列
- 二維陣列中的查詢——牛客劍指offer陣列
- Leetcode 陣列中和為給定值的最長子陣列LeetCode陣列