求最大子数组二(结对开发)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求最大子数组二(结对开发)相关的知识,希望对你有一定的参考价值。
结对伙伴:
纪烈翔
博客名:我们都是小怪兽
链接:http://www.cnblogs.com/qwer113/
设计思想:
1:随机输入一个数组
2:用直接穷举法求出该数组的最大和(把数组看成环形)
3:定义一个结构体,求出最大数组时,记录该数组的开始和结束的位置
4:输出
程序源代码:
//动态规划 //2016/3/26 #include "iostream" using namespace std; #define N 100 typedef struct data//定义结构体 { int kaishi; int jieshu; int value; }data; int main() { //任意输入一个数组 int num = 0; int A[N]; cout << "任意输入一个数组:"; while (true) { cin >> A[num]; num++; if (getchar() == ‘\\n‘) { break; } } data Start; data All; //初始化 Start.kaishi = All.kaishi = 0; Start.jieshu = All.jieshu = 0; Start.value = All.value = A[0]; //直接穷举法求出该环形数组的最大值 //记录该数组的起始位置和结束位置 for (int i = 0; i < num; i++) { Start.value = 0; Start.kaishi = i; for (int j = i; j < num; j++) { Start.value += A[j]; Start.jieshu = j; if (Start.value>All.value) All = Start; } for (int j = 0; j < i; j++) { Start.value += A[j]; Start.jieshu = j; if (Start.value>All.value) All = Start; } } //输出 cout <<"开始位置:"<<All.kaishi+1<<endl<<"结束位置:"<<All.jieshu+1<<endl<<"最后和为:"<< All.value<<endl; return 0; }
运行截图:
项目计划总结:
时间记录日志:
缺陷记录日志:
以上是关于求最大子数组二(结对开发)的主要内容,如果未能解决你的问题,请参考以下文章