LeetCode 53 Maximum Subarray 最大子序列和
2017-01-15 18:49
381 查看
算法思想:
new一个新的数列与已知数列长度相同,将新序列的第一个数字置为已知数列的第一个数字,视为第一个数字这个子序列的和,然后从第2个数开始,依次计算该数与前面的子序列的和是否大于等于0,若为true则新数列该位置置为该和,若为false则新数列该位置与旧数列该位置数字相同。
代码如下
int[] num = new int[nums.length];
num[0] = nums[0];
for(int i = 1;i < nums.length ; i++){
if(nums[i] + num[i-1] >= nums[i]){
num[i] = nums[i] + num[i-1];
}else num[i] = nums[i];
}
int max = num[0];
for(int a:num)
if (a > max)
max = a;
return max;
new一个新的数列与已知数列长度相同,将新序列的第一个数字置为已知数列的第一个数字,视为第一个数字这个子序列的和,然后从第2个数开始,依次计算该数与前面的子序列的和是否大于等于0,若为true则新数列该位置置为该和,若为false则新数列该位置与旧数列该位置数字相同。
代码如下
int[] num = new int[nums.length];
num[0] = nums[0];
for(int i = 1;i < nums.length ; i++){
if(nums[i] + num[i-1] >= nums[i]){
num[i] = nums[i] + num[i-1];
}else num[i] = nums[i];
}
int max = num[0];
for(int a:num)
if (a > max)
max = a;
return max;
相关文章推荐
- 求最大子序列和 LeetCode 53 Maximum Subarray
- leetCode解题报告之O(n)线性时间求最大子序列和(Maximum Subarray)
- LeetCode--Maximum Subarray 最大连续子序列和 (动态规划)
- leetcode gas-station【最大序列变形】
- [LeetCode] House Robber 求数组中元素两两不相邻的子序列最大和
- LeetCode -- 最大连续乘积子序列
- 【LeetCode】Maximum Subarray (最大连续子序列和)
- leetcode 516. Longest Palindromic Subsequence 最大回文子序列
- LeetCode 53 分治算法,求最大子串
- [LeetCode] Gas Station,转化为求最大序列的解法,和更简单简单的Jump解法。
- leetcode53最大连续数和
- [LeetCode] Gas Station,转化为求最大序列的解法,和更简单简单的Jump解法。
- leetcode | Maximum Subarray 最大连续子序列的和
- [LeetCode]Gas Station 最大子序列和,贪心
- Maximum Subarray连续子序列最大和 -- LeetCode(经典动态规划)
- leetcode 最大子序列和(连续)
- [leetcode]Maximum Product Subarray最大子序列乘积
- LeetCode -- 最大连续乘积子序列
- leetcode 53-最大子数组的和
- leetcode 121. Best Time to Buy and Sell Stock | 最大差值和最大子序列关系