【C++】【LeetCode】53. Maximum Subarray
2017-07-15 23:58
274 查看
题目
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1] has the largest sum = 6.
思路
从头开始遍历数组,如果数组遍历到某处,之前的sum已经小于0,则没有必要加到后面的运算中,因为始终比当前数的和小。所以当sum<0时,直接舍弃。代码
class Solution { public: int maxSubArray(vector<int>& nums) { int sum = 0; int max = nums[0]; for (int i = 0; i < nums.size(); i++) { if (sum < 0) { sum = nums[i]; } else { sum += nums[i]; } max = (sum > max) ? sum : max; } return max; } };
相关文章推荐
- LeetCode - 53. Maximum Subarray - C++
- Leetcode 53. Maximum Subarray
- leetcode - 53. Maximum Subarray
- LeetCode 53. Maximum Subarray--Divide and Conquer(分治法)
- 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] Algorithms-53. Maximum Subarray
- Leetcode解题笔记 53. Maximum Subarray [Easy] 动态规划
- LeetCode53. Maximum Subarray一种很好的做法
- LeetCode53. 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-最大子数组|动态规划