返回一个整数数组中最大子数组的和
题目:返回一个整数数组中最大子数组的和。
要求: 输入一个整型数组,数组里有正数也有负数;
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和;
求所有子数组的和的最大值。要求时间复杂度为O(n);
一、设计思想
1.首先随机产生一个数组,数组长度可自行输入,该数组里有正数也有负数。
2.从数组中第一个元素a[0]开始,依次计算a[0]、a[0]+a[1]、a[0]+a[1]+...+a[i]的值,即从a[0]开始的每个子数组的和,取出最大值。
3.再从数组第二个元素a[1]开始,依次往后计算每个子数组的和,取出最大值。
4.依次循环,循环num次,直到数组最后一个元素,将每次求得的最大值存到一个数组list[]中。
5.比较每次得出的子数组的和的最大值,再得出最大值。

浙公网安备 33010602011771号