面试题31——连续子数组的最大和
2017-05-03 17:19
190 查看
题目描写叙述
输入一个数组,有正数也有负数,求连续子数组的最大和。解题思路
典型动态规划设f(i) 表示 以i位置结尾的子数组和,那么有:
递推式:f(i) = max{ f(i-1) + array[i], array[i] }
初值:f(0) = array[0]
实现代码
class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { if(array.empty()) return 0; int retMax=INT_MIN; int len = array.size(); vector<int> ans(len,INT_MIN); ans[0] = array[0]; retMax = ans[0]; for(int i=1; i<len; i++) { ans[i] = getMax( (ans[i-1] + array[i]), array[i]); if(ans[i] > retMax) retMax = ans[i]; } return retMax; } int getMax(int a, int b) { return a>b? a:b; } };
相关文章推荐
- 面试题31:连续子数组的最大和
- 面试题31——连续子数组的最大和
- 面试题31:连续子数组的最大和
- 面试题31:连续子数组的最大和
- 剑指offer——面试题31:连续子数组的最大和
- 剑指offer代码解析——面试题31连续子数组的最大和
- 剑指offer 面试题31 求连续子数组的最大和
- 剑指offer面试题31:连续子数组的最大和
- 剑指offer-面试题31:连续子数组的最大和
- 面试题31:连续子数组的最大和
- 【剑指offer】面试题31:连续子数组的最大和
- 面试题31:连续子数组的最大和(Leetcode-53:Maximum Subarray)
- 《剑指Offer》学习笔记--面试题31:连续子数组的最大和
- 剑指Offer面试题31(java版):连续子数组的最大和
- 面试题31:连续子数组的最大和
- (剑指Offer)面试题31:连续子数组的最大和
- 面试题31.连续子数组的最大和
- 面试题31:连续子数组最大的和
- 剑指offer-面试题31.连续子数组的最大和
- 面试题31 连续子数组的最大和