最大子数组问题-暴力求解-c++代码实现及运行实例结果
2017-12-15 14:48
609 查看
问题描述:假定你获得了投资挥发性化学公司的机会。给出一支股票17天价格表,要求求出买进卖出获得的最大化收益及买进时刻卖出时刻.......详见算法导论第三版
思路:所有连续子数组组合,然后从中选取最大的
c++代码
运行结果
思路:所有连续子数组组合,然后从中选取最大的
c++代码
#include <iostream> using namespace std; class Array { private: public: int indexLow; int indexHigh; int arraySum; }; Array maxSubArrayViolence(int array[],int len); int main() { int A[]={ 2, 1,-6, 5,-9, 7, 3, 4,-5, 8, 6}; int length=sizeof(A)/sizeof(A[0]); cout<<"输入的数组为:"<<endl; for(int i=0;i<length;++i) cout<<A[i]<<" "; cout<<endl; Array result=maxSubArrayViolence(A,length); cout<<"最大子数组下标左值:"<<result.indexLow<<endl<<"最大子数组下标右值:"<< result.indexHigh<<endl<<"最大子数组和:"<<result.arraySum<<endl; return 0; } Array maxSubArrayViolence(int array[],int len) { Array maxSubArray; for(int i=0;i<len;++i) { for(int j=i;j<len;++j) { int temp=0;//需要将上次的temp清零 for(int k=i;k<=j;++k) temp+=array[k]; if(temp>maxSubArray.arraySum) { maxSubArray.arraySum=temp;//最大子数组求和 maxSubArray.indexLow=i;//最大子数组下标 maxSubArray.indexHigh=j;//最大子数组上标 } } } return maxSubArray;//返回一个结构体 }
运行结果
相关文章推荐
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果