剣はオファー42を指します。連続するサブアレイの最大合計
タイトル説明
問題解決のアイデア
この質問は連続サブ配列の最大値を見つけることであり、アイデアはdpであることに注意してください。
なぜ接頭辞の合計ではないのですか?
接頭辞の合計のタイトルの説明も連続したサブ配列ですが、「 andisK 」という単語が含まれている必要があります。区別に注意してください。
class Solution {
public int maxSubArray(int[] nums) {
//定义:dp[i]表示以nums[i]结尾的子数组和的最大值
int[] dp = new int[nums.length];
//base case
dp[0] = nums[0];
int res = nums[0];
for (int i = 1; i < nums.length; i++) {
dp[i] = Math.max(nums[i], dp[i - 1] + nums[i]);
res = Math.max(res, dp[i]);
}
return res;
}
}