Maximum Subarray(分治法)
来源:互联网 发布:淘宝拍卖会的字画真假 编辑:程序博客网 时间:2024/05/17 03:48
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
.
和上一篇类似
我们把问题分成三份
1.最大在左边
2.最大在右边
3.最大在中间
int Max(int a,int b){ return a>b?a:b;}int slove(int *nums,int left,int right){ if(left==right) return nums[left]; int mid=(right-left)/2+left; int res=Max(slove(nums,left,mid),slove(nums,mid+1,right)); int lo=mid; int hi=mid+1; int rightarea=0; int leftarea=0; int maxright=nums[hi]; int maxleft=nums[lo]; for(int i=hi;i<=right;i++) { rightarea+=nums[i]; maxright=Max(maxright,rightarea); } for(int i=lo;i>=left;i--) { leftarea+=nums[i]; maxleft=Max(maxleft,leftarea); } res=Max(res,maxright+maxleft); return res;}int maxSubArray(int* nums, int numsSize) { return slove(nums,0,numsSize-1);}这两篇文章做的糙了点主要是给自己复习用的,见谅,如果有不理解的可以底下评论看到会立即回复
阅读全文
0 0
- Maximum Subarray(分治法)
- leetcode 53. Maximum Subarray(分治,递归)
- 分治算法解题:Maximum Subarray
- LeetCode53. Maximum Subarray 动态规划和分治法
- LeetCode 53. Maximum Subarray--Divide and Conquer(分治法)
- LeetCode-53-Maximum Subarray(DP/分治)-Medium
- 53. Maximum Subarray-动态规划/分治
- 53. Maximum Subarray 难度:medium 类别:分治
- LeetCode(53) Maximum Subarray
- leetcode_c++:Maximum Subarray(053)
- 53. Maximum Subarray(dp)
- 53. Maximum Subarray (dp)
- LeetCode53. Maximum Subarray(easy)
- Algorithms(二)Maximum Subarray
- maximum subarray
- Maximum Subarray
- Maximum Subarray
- Maximum Subarray
- whereis查找指定文件、命令和手册页位置
- TensorFlow官方教程学习笔记之2-用于机器学习初学者学习的MNIST数据集(MNIST For ML Beginners)
- 关于thinkphp生成的验证码不显示问题解决
- spring框架
- 一个JS图片放大镜,实现动态记录的图片放大,避免内存泄露,解决IE6下无法遮盖select控件问题
- Maximum Subarray(分治法)
- linux环境下安装redis,绝对ok
- Java 异常学习总结
- Redis数据迁移-键迁移
- JavaScript操作DOM节点元素重排
- RELAX NG:表示 XML 词汇表的语法规则
- Maven 快速入门及简单使用
- JS异步之co函数库
- oracle11g 一条几百行行的sql语句 优化 需要适可而止才行