LeetCode-初级=动态规划-最大子序和
2018-09-12 19:14
176 查看
给定一个整数数组
nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
进阶:
如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。
思路:
两个变量:sum、max,初始都为第一个元素
sum记录一系列和,max记录当前的和与之前的和的最大值。
遍历数组,若sum<0,说明之前的和小于0,则抛弃之前的sum,让sum直接等于当前元素;否则,sum加上当前元素。
并更新max。
[code]/** * @param {number[]} nums * @return {number} */ var maxSubArray = function(nums) { let sum = nums[0], max = nums[0] for (let i = 1; i < nums.length; i++) { sum = sum > 0 ? sum+nums[i] : nums[i] max = Math.max(max, sum) } return max };
阅读更多
相关文章推荐
- Leetcode 053 最大子序和 python 分治+动态规划
- LeetCode52. 最大子序和(动态规划)
- Leetcode 53. 最大子序和
- 最大子序和 - LeetCode
- LeetCode - 53. 最大子序和
- LeetCode 198 House Robber(强盗盗窃最大值)(动态规划)(*)
- leetcode 53. Maximum Subarray-最大子数组|动态规划
- leetcode-最大子序和(动态规划讲解)
- [LeetCode]:动态规划+回溯 Largest Divisible Subset 最大可整除的子集合
- Maximum Subarray连续子序列最大和 -- LeetCode(经典动态规划)
- leetcode 474. Ones and Zeroes若干0和1组成字符串最大数量+动态规划DP+背包问题
- leetcode的python实现 刷题笔记53:最大子序和(多种解法)
- leetcode_198. House Robber 抢劫不相邻的房子,使得抢到的金钱数目最大, 动态规划
- LeetCode题库解答与分析——#53.最大子序和MaximumSubarray
- LeetCode--Maximum Subarray 最大连续子序列和 (动态规划)
- leetcode_121. Best Time to Buy and Sell Stock 求股票的最大收益 动态规划
- leetcode 221. Maximal Square 最大正方形面积 + 动态规划DP实现
- 【动态规划】【单调队列】tyvj1305 最大子序和
- [LeetCode] Maximum Subarray 最大子序和