Maximum Subarray
来源:互联网 发布:全景大师软件 编辑:程序博客网 时间:2024/05/02 16:35
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],
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.
参照了Programming Pearls上的解法。for循环内更新两个变量maxEndingHere和maxSoFar,第一个用来记录以第i + 1个元素结尾的子数组的和的最大值,第二个变量用来记录从第一个元素到第i + 1个元素范围内的子数组的和的最大值(可以不以第i + 1个元素结尾)。
class Solution {public: int maxSubArray(int A[], int n) { int maxEndingHere = 0, maxSoFar; bool firstComp = true; for (int i = 0; i < n; i++) { maxEndingHere = max(maxEndingHere + A[i], A[i]); if (firstComp) { maxSoFar = maxEndingHere; firstComp = false; } else { maxSoFar = max(maxSoFar, maxEndingHere); } } return maxSoFar; }};
0 0
- maximum subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
- 张飞学Android之嘲讽Context
- Java应用级产品开发平台APDPlat
- 压缩感知技术
- Qt Quick 5.2 开发笔记4-------窗口
- Maximum Subarray
- Linux ALSA声卡驱动之六:ASoC架构中的Machine
- OpenMP学习(六)
- cocos2d-x 改变马蜂在Z轴顺序并做永久动画的方法
- java拼写json
- ora-12541: TNS:监听程序当前无法识别连接描述符中请求的服务
- Queue's implementation
- Latex数学公式中的空格
- MFC字符串操作(三)MFC CString其他用法小结