题目的链接在这里:
https://leetcode-cn.com/problems/maximum-subarray/
题目大意
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
一、示意图
二、解题思路
使用Java来写
代码如下:
class Solution {
public int maxSubArray(int[] nums) {
//用一个比较好的方法就是贪心,先取第一个数
int res=nums[0];
int s=0;
for(int i=0;i<nums.length;i++){
//他如果比0大的话
if(s>0){
s+=nums[i];
}
//如果比零小的话
else{
s=nums[i];//也就相当于之前的都报废,现在这个是最大的
}
res=Math.max(s,res);//每次都比较一下,其实就相当于把每一次都记录下来了
}
return res;
}
}