题目:最大子列和

问题描述:给定K个整数组成的序列{ N1​​, N2​​, ..., NK​​ },“连续子列”被定义为{ Ni​​, Ni+1​​, ..., Nj​​ },其中 1ijK。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。

算法描述:采用分治法,将数组分成左右两部分,然后计算出左右两部分的最大数,最后在比较。

复杂度:

每次递归将问题分为两个子问题,每个子问题中又有时间复杂度为O(n)的操作;

则有T(n)=2T(n/2)+O(n);

得到时间复杂度为O(nlogn);

S(n)=0(n);

心得体会:没有考虑数组有多个0的情况,在编程的过程中,没有考虑边界条件导致出错

posted on 2020-10-22 00:17  丿陌路灬孤独  阅读(75)  评论(0编辑  收藏  举报