Maximum Subarray
来源:互联网 发布:php 数据相加 编辑:程序博客网 时间:2024/05/17 06:32
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.
该题最简单的方法当然是枚举所有情况,然后选出最大的和。但是此题可以采用分治的算法。
- 把数组分成左右两部分
- 整体和、左侧和、右侧和只中取最大的
- 再把左侧和右侧递归下去
- 最后得出最大和
class Solution {public: int maxSubArray(vector<int>& nums) { int n = nums.size(); return maxSub(nums, 0, n - 1); }private: int maxSub(vector<int>& nums, int l, int r) { if (l > r) return INT_MIN; int m = l + ((r - l) /2); int lm = maxSub(nums, l, m - 1); // left half int rm = maxSub(nums, m + 1, r); // right half int i, sum, ml = 0, mr = 0; // Move leftwards for (i = m - 1, sum = 0; i >= l; i--) { sum += nums[i]; ml = max(sum, ml); } // Move rightwards for (i = m + 1, sum = 0; i <= r; i++) { sum += nums[i]; mr = max(sum, mr); } return max(ml + mr + nums[m], max(lm, rm)); }};
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
- restfull接口 Retrofi
- PHP编程利器——NetBeans 和 PHPED
- mybati事物配置
- PHP版源代码高亮工具——GESHI
- eclipse中使用Maven搭建简单javaweb
- Maximum Subarray
- 【转】这到底是谁之错?
- psot请求参数放于requestbody中
- js定时器的几种写法
- 架构之美--开放环境下的网络架构(附活动在线视频和PPT)
- maven本地仓库jar包
- NYOJ1277 Decimal integer conversion(模拟)(河南省第九届ACM省赛)
- PHP使用curl模拟登录网站
- vim使用记录