53. Maximum Subarray(缺DP解)
来源:互联网 发布:连云港联通网络电视 编辑:程序博客网 时间:2024/06/06 08:29
问题描述
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
.
题目链接
思路分析
给出一个数组,要求返回最大的连续元素的和。
首先考虑数组中的元素都小等于零,那么返回的一定只有一个元素,就是这些数中最大的负数或者零;如果这个数组中有正数,那么这个连续子数组的开头第一个元素一定是正数。如果继续加上后继元素的话,后面是正数则和会越来越大;如果是负数就会减小,我们记录的最大值还是之前的那个;如果和小于零了,这个子数组就没有继续的必要了,将其置为下一个元素继续循环即可。
代码
class Solution {public: int maxSubArray(vector<int>& nums) { int result = INT_MIN, sum = 0, n = nums.size(); for (int i = 0; i < n; i++){ if (sum < 0) sum = nums[i]; else sum += nums[i]; if (sum > result) result = sum; } return result; }};
时间复杂度:O(n)
反思
百思不得其解的一个题目,道理很明白,但是绕了很久,主要是没有明确循环的内部判断条件。还有更快速的动态规划算法,有待补充。
阅读全文
0 0
- 53. Maximum Subarray(缺DP解)
- 53. Maximum Subarray(dp)
- 53. Maximum Subarray (dp)
- (DP)LeetCode#53. Maximum Subarray
- [LeetCode] 53. Maximum Subarray 代码+分析(dp)
- 【Leetcode】Maximum Subarray (DP)
- LeetCode Maximum Subarray DP
- [leetcode][DP]Maximum Subarray
- DP---Maximum Subarray
- DP Leetcode - Maximum Product Subarray
- 【Leetcode】Maximum Product Subarray (DP)
- DP——Maximum Subarray
- leetcode53. Maximum Subarray (简单dp)
- leetcode 53. Maximum Subarray DP+最大子串和
- leetcode 53. Maximum Subarray(DP动态规划问题)
- LeetCode 53/152 Maximum Subarray/Maximum Product Subarray---DP **
- LeetCode Maximum Subarray Maximum Product Subarray DP问题
- LeetCode 53. Maximum Subarray(dynamic programming)
- Spring和struts2整合
- 怎样配置MySQL数据库超时设置?
- 有标识列下使用SqlBulkCopy必须设置列映射
- 欢迎使用CSDN-markdown编辑器
- lua gc和weaktable
- 53. Maximum Subarray(缺DP解)
- 栈和队列
- C#重构经典全面汇总
- You must define a @Consumes type on your client method or interface,
- Ubuntu下的run打包
- 阻塞,非阻塞,同步,异步
- HDU
- 马虎的算式
- [arc066f]Contest with Drinks Hard