求最大子序列和 LeetCode 53 Maximum Subarray
来源:互联网 发布:js array删除方法 编辑:程序博客网 时间:2024/05/16 01:57
此类问题可以粗暴的用穷举来做,但时间复杂度较高
下面说下用kadane's Algorithrn 来做,真的是很优雅,简捷,js实现代码只有区区十行不到
var maxSubArray = function(nums) { var maxHere = nums[0]; var maxSoFar = nums[0]; for(var i = 1; i < nums.length; i++) {curMax= Math.max(nums[i], curMax + nums[i]); max = Math.max(max, curMax); } return max;};没错,就上面这些,主要是控制子序列到底继不继续加下去的思想很有意思,就是当前子序列加上下一个数的和若比下个数还小,那么前面的子序列就没必要保留了,即没必要再累加时下去了。时间复杂度一下子就降到O(n)了。
阅读全文
0 0
- 求最大子序列和 LeetCode 53 Maximum Subarray
- LeetCode 53 Maximum Subarray 最大子序列和
- leetCode解题报告之O(n)线性时间求最大子序列和(Maximum Subarray)
- 【LeetCode】Maximum Subarray (最大连续子序列和)
- leetcode | Maximum Subarray 最大连续子序列的和
- 【LeetCode】53.Maximum Subarray最大连续子序列和
- 【LeetCode】 53. Maximum Subarray 最大子序列和
- [LeetCode] Maximum Subarray 求连续子数组的最大和
- leetcode Maximum Subarray 最大子序列
- 最大子序列和 Maximum Subarray
- 53/152 Maximum Product Subarray /Maximum Subarray(子序列之 和/积 最大)
- leetcode-53 Maximum Subarray 连续子数组的最大和
- [leetcode 53] Maximum Subarray----最大子数组的和
- LeetCode-53-Maximum Subarray(最大和子串)
- [Leetcode-53]Maximum Subarray 最大子数组和
- LeetCode: -Dynamic Programming-Maximum Subarray[53]-子数组最大和
- [leetcode]Maximum Product Subarray最大子序列乘积
- [LeetCode] Maximum Product Subarray 求最大子数组乘积
- Angular 学习总结笔记
- pandas入门——创建series
- Spark学习总结一 单词计数
- git 还原到某次commit
- 获取手机联系人信息 很简单的方法
- 求最大子序列和 LeetCode 53 Maximum Subarray
- 数据类型
- git 新建、删除分支
- 如何调用百度编辑器ueditor的上传图片、上传文件等模块
- LeetCode——561. Array Partition I(贪心,C++)
- 熄灯问题(枚举、位运算)
- 自动代理的两种实现
- IDEA包分层显示
- ImageLoader工具类