Maximum Subarray
来源:互联网 发布:linux知识点总结 编辑:程序博客网 时间:2024/06/14 05:12
题目要求:
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
.
More practice:
If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.
O(n)代码:
#include"stdafx.h" #include <iostream> using namespace std; class Solution { public: int maxSubArray(int A[],int n) { if(n==0) return 0; int result=A[0];int Max_i=A[0];for(int i=1;i<n;i++){Max_i=max(Max_i+A[i],A[i]);result=max(Max_i,result);} return result; } }; void main() { int A[9]={-1,2,3,4,5,0,7,11,10}; Solution s; cout<<s.maxSubArray(A,9)<<endl; getchar(); }分冶代码:
#include"stdafx.h" #include <iostream> using namespace std; class Solution { public: int maxSubArray(int A[],int n) { return findMaxSub(A,0,n-1); } int findMaxSub(int A[],int low,int high){if(low==high)return A[low];int mid=(low+high)/2;int lmax=findMaxSub(A,low,mid);int rmax=findMaxSub(A,mid+1,high);int midmax=A[mid];int sum=0;for(int i=mid;i>=low;i--){sum+=A[i];if(sum>midmax)midmax=sum;}sum=midmax; for(int i=mid+1;i<=high;i++){sum+=A[i];if(sum>midmax)midmax=sum;}return max(max(lmax,rmax),midmax);}}; void main() { int A[9]={-1,2,3,4,5,0,7,11,10}; Solution s; cout<<s.maxSubArray(A,9)<<endl; getchar(); }
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
- 12条ios软件开发经验总结
- Django1.7学习笔记(三)
- 如何挑选无线路由器?
- [Leetcode]Longest Palindromic Substring
- 多态
- Maximum Subarray
- Centos配置国内yum源
- Http,Https(SSL)的Url绝对路径,相对路径解决方案Security Switch 4.2的配置和使用
- Java中的基本数据模型的转换
- 苹果信息推送服务(Apple Push Notification Service)使用总结
- webservice到底是什么?
- MyEclipse 10编程总是提示The type Cat is already defined错误
- 跑马灯详细用法
- libgsc(Game Server Communication Library)(二)