给定一个整数数组 ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 nums
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组[4,-1,2,1]的和最大,为6 。
进阶:
如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的分治法求解。
思路:暴力解决,直接循环遍历,计算所有的组合,选出最大的和即可。
class Solution {
public int maxSubArray(int[] nums) {
//定义一个存目前最大和的sum
int sum = nums[0];
//定义一个每次遍历的时候的和ssum
int ssum = 0;
for(int i = 0; i < nums.length; i++)
{ ssum = 0;
for(int j = i;j < nums.length ;j++)
{
ssum+=nums[j];
//每当ssum大于sum时,使sum=ssum更新最大值
if(sum<ssum)
{
sum = ssum;
}
}
}
//返回最大数
return sum;
}
}