leetCode---Maximum Subarray
来源:互联网 发布:淘宝充值平台入口 编辑:程序博客网 时间:2024/05/15 17:30
一. 题目:Maximum Subarray
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
.
假设已知0, .., i
的最大和sum[i]
以后,则0, ..., i+1
的最大和sum[i+1]分为以下两种情况:
1)若sum[i]>=0
,则sum[i+1]=sum[i]+A[i+1]
。
2)若sum[i]<0
,另起一个SubArray,令sum[i+1]=A[i+1]
。在计算过程中,使用一个变量maxsum
用于存储sum
的最大值,一旦出现更大的sum
值则更新之,最后返回该变量即可。
class Solution {public: int maxSubArray(vector<int>& nums) { int len = nums.size(); if(len<1){ return 0; } int sum[len]; sum[0]=nums[0]; int maxSum=nums[0]; for(int i=1; i<len; i++){ if(sum[i-1]>0){ sum[i]=nums[i]+sum[i-1]; }else{ sum[i]=nums[i]; } maxSum = max(sum[i], maxSum); } return maxSum; }};
三. 总结
这种算法的空间复杂度为O(n),时间复杂度为O(n).
0 0
- 【LeetCode】Maximum Subarray 和 Maximum Product Subarray
- LeetCode: Maximum Subarray
- LeetCode Maximum Subarray
- [Leetcode] Maximum Subarray
- LeetCode: Maximum Subarray
- leetcode 25: Maximum Subarray
- [LeetCode] Maximum Subarray
- [Leetcode] Maximum Subarray
- [LeetCode]Maximum Subarray
- [leetcode]Maximum Subarray
- LeetCode-Maximum Subarray
- [leetcode] Maximum Subarray
- LeetCode 45: Maximum Subarray
- LeetCode - Maximum Subarray
- LeetCode:Maximum Subarray
- LeetCode 53: Maximum Subarray
- 【leetcode】Maximum Subarray
- Leetcode Maximum Subarray
- VS配置Opencv原理
- BZOJ2434: [Noi2011]阿狸的打字机
- 20170222听课笔记(CPU,内存,硬盘,指令之间的关系)
- [wget]分享自己爬api文档使用过的几个参数
- PHP程序员解决问题的能力晋升级别
- leetCode---Maximum Subarray
- 直播+时尚跨界掀起新玩法,传统时装行业变革在即
- MySQL中的保留字
- Note:R+Python数据科学实战(1)
- LeetCode-14. Longest Common Prefix
- nodejs 安装
- 图像放大与缩小—插值
- 类的声明及成员限制
- 为什么服务器大多使用Linux?