题目描述:
给定一个整数数组
nums
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
思路分析:
这是一道动态规划的简单题,动态规划就是每一步,都需要有可以直接返回的结果,然后下一步还要借用这次的结果,最后找出符合返回条件的那一个。
java代码实现:
class Solution {
public int maxSubArray(int[] nums) {
if(nums.length == 1){
return nums[0];
}
int[] sumArray = new int[nums.length];
sumArray[0] = nums[0];
int maxResult = nums[0];
for(int i = 1;i < nums.length;i++){
int a1 = nums[i] + sumArray[i-1];
sumArray[i] = Math.max(nums[i], a1);
if(sumArray[i] > maxResult){
maxResult = sumArray[i];
}
}
return maxResult;
}
}