LeetCode: 53. Maximum Subarray(Easy)

1. 原题链接

https://leetcode.com/problems/maximum-subarray/discuss/

2. 题目要求

给定一个整型数组,返回其子串之和的最大值

例如,[-2,1,-3,4,-1,2,1,-5,4]中,[4,-1,2,1]可以构成最大子串之和6

3. 解题思路

对数组进行一次遍历,每次加入一个元素前,先判断其加入后累加和与该元素的大小,取最大者。然后每遍历一个元素,选取当前的最大子串之和。

4. 代码实现

public class MaximumSubarray53 {
public static void main(String[] args) {
int[] nums ={-2,1,-3,4,-1,2,1,-5,4};
System.out.println(maxSubArray(nums));
}
public static int maxSubArray(int[] nums){
int sumTemp =nums[0], maxRes = nums[0];
for(int i =1;i<nums.length;i++){
sumTemp = Math.max(sumTemp+nums[i],nums[i]);
maxRes = Math.max(sumTemp,maxRes);
}
return maxRes;
}
}

  

上一篇:SNMP开发c#,高薪诚聘,或者外包开发


下一篇:moss2003 sp3补丁安装