leetcode-53. Maximum Subarray
来源:互联网 发布:网络营销商劫持网络 编辑:程序博客网 时间:2024/05/18 03:06
https://leetcode.com/problems/maximum-subarray/#/description
问题描述:给定一个序列,求最长子串使其和最大。
思路解析:两种方法。一种就是常规,另一种DP,当指针i指向该元素值时,将该元素之前的和保存在数组中,然后判断,dp[i-1]是否小于0,若小于0,则将将其逻辑上重置0,加nums[i],如下:
dp[i]=nums[i]+(dp[i-1]>0?dp[i-1]:0);
代码如下:
public class Solution { public int maxSubArray(int[] nums) { int[] dp=new int[nums.length]; dp[0]=nums[0]; int max=dp[0]; for(int i=1;i<nums.length;i++) { dp[i]=nums[i]+(dp[i-1]>0?dp[i-1]:0); max=Math.max(max,dp[i]); } return max; }}
另一种常规解法:
public class Solution { public int maxSubArray(int[] nums) { int max=Integer.MIN_VALUE; int sum=0; for(int i=0;i<nums.length;i++) { if(sum<0) { sum=nums[i]; }else { sum+=nums[i]; } if(sum>max) { max=sum; } } return max; }}
0 0
- [LeetCode]53.Maximum Subarray
- LeetCode --- 53. Maximum Subarray
- [Leetcode] 53. Maximum Subarray
- [leetcode] 53.Maximum Subarray
- 【leetcode】53. Maximum Subarray
- [leetcode] 53.Maximum Subarray
- 【leetcode】53. Maximum Subarray
- LeetCode 53. Maximum Subarray
- [LeetCode]53. Maximum Subarray
- 53. Maximum Subarray LeetCode
- [LeetCode]53. Maximum Subarray
- leetcode 53. Maximum Subarray
- [leetcode] 53. Maximum Subarray
- LeetCode *** 53. Maximum Subarray
- 【LeetCode】53. Maximum Subarray
- leetcode 53. Maximum Subarray
- LeetCode 53. Maximum Subarray
- Leetcode:53. Maximum Subarray
- 401. Binary Watch
- Hibernate状态 (merge,attachDirty,attachClean)
- 层次式电路设计与平坦式电路设计
- Cocos-Js项目中自己写的 HashMap
- java异常Throwable和Sping事务控制的异常回滚
- leetcode-53. Maximum Subarray
- 终身机器学习(Lifelong Machine Learning)
- 2015年需要了解的前端框架和语言
- 杭电oj(Java版)2602 Bone Collector 01背包问题
- ITK4.11.1编译配置+VS2015+Cmake3.8.1
- python wget下载文件处理的一些问题
- FPGA状态机总结
- Buy a Shovel
- Windows Spark开发环境部署