观何不输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。观何不例
return max;//返回b[1]~b[i]中最大值 }结果一 题目 求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大 。要求时间复杂度为o(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大...
System.out.println("子数组最大值为:"+max); } } 请确定数组的长度:4请输入数组内的数字:-10 -8 -4 -1子数组最大值为:-1.0
思路:从左到右递加, 如果v_sum为正,可以继续加到后面的元素上, 如果v_sum已经为负,就需要将原有的v_sum清为0, 如果v_sum清0了 跟greatest 就不是一一同步的, 最后比较greatest和v_sum取大值,需要注意的是 如果列表全是负值, 那么greatest的值 就是迭代下列表取最大值。
您好,程序已经编写,以10个数为例:include <stdio.h> int positive_sum(int *a, int n){ int i,sum=0;for(i=0;i<n;i++)if(*(a+i)>0)sum+=*(a+i);return sum;} int main(){ int a[10],i,sum;for(i=0;i<10;i++)scanf("%d",&a[i]);sum=positive_sum(a,10);...
public class Item { public static void main(String args[]) { int array[] = {1, 6, 10, -4,8,3, -5}; System.out.println(findMax(array)); } public static
输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。要求时间复杂度为O(n)。 输入描述: 【重要】第一行为数组的长度N(N>=1) 接下来N行,每行一个数,代表数组的N个元素 输出描述: 最大和的结果 输入例子1: