LeetCode Maximum Subarray
来源:互联网 发布:apm源码 github 编辑:程序博客网 时间:2024/06/05 10:53
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 size = nums.size(); int max = 0x80000000,sum=0; for(int i=0;i<size;i++) { sum = 0; for(int j=i;j<size;j++) { sum += nums[j]; if(sum > max) max = sum; } } return max; }};
已哭晕在厕所,想想怎么优化
思路二:寻找特性,进行减枝操作。当sum小于0时,其加上后面的数只会使得sum更小,所以此时sum与max进行对比,然后就sum置为0,从下一个位置开始计算
代码如下:
class Solution {public: int maxSubArray(vector<int>& nums) { int size = nums.size(); int max = 0x80000000,sum=0; for(int i=0;i<size;i++) { sum += nums[i]; if(sum > max) max = sum; if(sum < 0) sum = 0; } return max; }};
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
- jQuery富文本编辑器Notebook
- JAVASCRIPT之DATE日期格式化
- C#/.net学习-5
- Geoserver配置 - 图层组与样式
- android——再谈加载大量图片性能问题
- LeetCode Maximum Subarray
- 密码框明文暗文切换
- c++——多态、继承、运算符重载综合例子代码
- 字节与进制转换
- 单片机时钟实现闹钟功能
- 四路AD转换数码管显示
- 1 Linux su sudo
- C#/.net学习-6-函数
- java运行时数据区域