线性扫描算法求数组中的最大子序列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性扫描算法求数组中的最大子序列相关的知识,希望对你有一定的参考价值。
在看pat上的题目思考许久,还是久久不能完全实现怎么去求子序列中的首位。先贴出个还有点bug的代码:
#include <stdio.h> int main() { int i, size = 0, maxEle = 0, currEle = 0; int currEleStart = 0, currEleEnd = 0; scanf("%d", &size); int arr[size]; for(i = 0; i < size; i++) { scanf("%d", &arr[i]); currEle += arr[i]; if (currEle >= 0 && maxEle == 0) { currEleStart = arr[i]; } if (currEle > maxEle) { maxEle = currEle; currEleEnd = arr[i]; } else if (currEle < 0) { currEle = 0; } } printf("%d %d %d", maxEle, currEleStart, currEleEnd); return 0; }
以上是关于线性扫描算法求数组中的最大子序列的主要内容,如果未能解决你的问题,请参考以下文章