Divide and Conquer -- Leetcode problem53. Maximum Subarray
2017-09-20 13:19
393 查看
描述: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.
分析:这道题看起来题目非常简单,但是仔细想想却又感觉没有什么简便的方法来进行解答,起初想法是直接用穷举法列举出所有可能,但是这样做就失去了这道题的意义,并且会超时。
思路一:(动态规划)这道题Leetcode把它放在Divide and Conquer里面其实对做题者的误导蛮大的,虽然可以用分治法的思想,但是最终还是要对整个数组进行操作,分治法的用处不大,仅仅在做题的角度来说,动态规划足够解决这道题,分治法在对这道题解法优化的过程中才会使用到。
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.
分析:这道题看起来题目非常简单,但是仔细想想却又感觉没有什么简便的方法来进行解答,起初想法是直接用穷举法列举出所有可能,但是这样做就失去了这道题的意义,并且会超时。
思路一:(动态规划)这道题Leetcode把它放在Divide and Conquer里面其实对做题者的误导蛮大的,虽然可以用分治法的思想,但是最终还是要对整个数组进行操作,分治法的用处不大,仅仅在做题的角度来说,动态规划足够解决这道题,分治法在对这道题解法优化的过程中才会使用到。
class Solution { public: int maxSubArray(vector<int>& nums) { int max_num = 0; int max_max = nums[0]; for (int i = 0; i < nums.size(); i++) { if (max_num < 0) { max_num = nums[i]; } else { max_num += nums[i]; } max_max = max(max_num, max_max); } return max_max; } };
相关文章推荐
- LeetCode 53. Maximum Subarray--Divide and Conquer(分治法)
- [Leetcode刷题总结系列][Dynamic programming][Divide-and-conquer]53.Maximum Subarray
- LeetCode 215. Kth Largest Element in an Array--Divide and Conquer(分治法)
- leetCode刷题归纳-Divide and Conquer(215. Kth Largest Element in an Array)
- leetcode_c++:Divide and Conquer:Kth Largest Element in an Array(215)
- [week 13][Leetcode][Divide and Conquer] Pow(x, n)
- Divide and Conquer -- Leetcode problem169: Majority Element
- LeetCode 169.Majority Element--Divide and Conquer(分治法)
- LeetCode--Divide and Conquer
- leetcode_c++:Divide and Conquer: The Skyline Problem(218)
- LeetCode之Divide and Conquer题目汇总
- [week 16][Leetcode][Divide and Conquer] Kth Largest Element in an Array
- Divide and Conquer -- Leetcode problem241:Different Ways to Add Parentheses
- 关于divide and conquer的两道Leetcode
- leetcode_c++:Divide and Conquer: . Search a 2D Matrix II(240)
- LeetCode 218. The Skyline Problem--Divide and Conquer(分治法)
- leetcode_c++:Divide and Conquer: Different Ways to Add Parentheses(241)
- leetcode Decode Ways Divide and Conquer
- leetcode_c++:Divide and Conquer: Expression Add Operators(282)
- leetcode_c++:Divide and Conquer:Burst Balloons(312)