0%

leetcode 53 Solution

代码解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.demo.s53;

/**
* 最大子数组和
* 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
*
* 子数组 是数组中的一个连续部分。
*/
public class Solution {
public int maxSubArray(int[] nums) {
//假定第一个是最大子元素
int max = nums[0];
//设置一个和参数,默认0
int sum = nums[0];
for(int i =1; i< nums.length; i++) {
//累计的和大于0,则继续累计
if(sum > 0){
sum += nums[i];
} else {
//累计和不大于0 ,重新开始累计
sum = nums[i];
}
//求最大和
max = Math.max(sum, max);

}
return max;
}
}