计算连续最大子数组问题
Posted logo132
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算连续最大子数组问题相关的知识,希望对你有一定的参考价值。
#include "stdafx.h" #include "stdlib.h" int a[1000] = { 0 }; int _tmain(int argc, _TCHAR* argv[]) { int a[1000] = { 0 }; for (int i = 0; i < 1000; i++) { a[i] = rand() % 10000 - 5000; } for (int j = 0; j < 999; j++) { printf("%d ", a[j]); } //计算连续最大子数组 int maxsum = 0; int nowsum = 0; int x; for (int k = 0; k <1000; k++) { nowsum += a[k]; x = nowsum; if (a[k +1] > 2147483647 - x) { printf("超出范围"); maxsum = maxsum + a[k + 1]; printf("%d", k+1); break; } else { if (nowsum > maxsum) { maxsum = nowsum; } else if (nowsum < 0) { nowsum = 0; } } } printf(" 结果是 "); printf("%d ", maxsum); return 0; }
这次直接遇到的问题一个是如何计算连续最大子数组,一个是如何判断结果超限,确实用了不少时间来思考,思路是分为三段1是设置一个数组能储存1000个元素2是计算最大连续子数组3是设立判断是否超限的条件.这次的任务使我们有所收获,但也只做到最终结果超限的判断却并没有想到如何计算出超限的最终结果,不太清楚该怎么办.
这次作业让确实发现自己水平不太好,希望努力能把这门课越学越好
以上是关于计算连续最大子数组问题的主要内容,如果未能解决你的问题,请参考以下文章