首页 > 编程语言 > 详细

线性扫描算法求数组中的最大子序列

时间:2016-10-12 00:55:47      阅读:255      评论:0      收藏:0      [点我收藏+]

  在看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;
}

  

线性扫描算法求数组中的最大子序列

原文:http://www.cnblogs.com/hznge/p/5951268.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!