输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。要求时间复杂度为O(n)

@第一天

数组的子数组有数组的每一个元素作为数组的的每一个子数组,和数组的连续的元素作为数组的子数组。

eg

Num[5]={1,4,3,2,5,6,7}
子数组有1,4,3,2,5,6,7
1 、4,1、3,1、2,1、6,1、7
1、4、3,、、、、、、

求数组中连续数组的最大和

讲解

从数组中的第一个非负数开始进行累加,遇到负数时将数组进行分割为子数组,将负数前和与负数后的元素进行比较,找出其最大值,并将所有的值进行累加,累加的和与最大值进行比较,若比最大值大,则进行交换使其成为最大值

int main()
{
int N,i;
    int input[1000];
}

发布了15 篇原创文章 · 获赞 3 · 访问量 792

猜你喜欢

转载自blog.csdn.net/qq_37158147/article/details/95676036