【LeetCode】53. Maximum Subarray
2017-01-08 10:42
471 查看
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array
the contiguous subarray
click to show more practice.
Difficulty: Medium
动态规划
另sum[i]表示从i开始的最大子串和,则有递推公式:sum[i] = max{A[i], A[i] + sum[i+1]}
因为递推式只用到了后一项,所以在编码实现的时候可以进行状态压缩,用一个变量即可
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.
click to show more practice.
Difficulty: Medium
动态规划
另sum[i]表示从i开始的最大子串和,则有递推公式:sum[i] = max{A[i], A[i] + sum[i+1]}
因为递推式只用到了后一项,所以在编码实现的时候可以进行状态压缩,用一个变量即可
class Solution { public: int maxSubArray(vector<int>& nums) { int n=nums.size(); int sum = nums[n - 1]; int maxSum = sum; for (int i = n - 2; i >= 0; i--) { sum = max(nums[i], sum + nums[i]); maxSum = max(maxSum, sum); } return maxSum; } };
相关文章推荐
- 详解Android应用中屏幕尺寸的获取及dp和px值的转换
- 基于Android中dp和px之间进行转换的实现代码
- 简单谈谈Android中SP与DP的区别
- Android中dip、dp、sp、pt和px的区别详解
- LFC1.0.0 版本发布
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- Android dpi,dip,dp的概念以及屏幕适配
- leetcode刷题,没想到这么难搞!
- Android px、dp、sp之间相互转换
- HP data protector软件学习1--基本角色与基本工作流程
- HP data protector软件学习2--软件组成与界面介绍
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum