一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和,求所有子数组的和的最大值,要求时间复杂度为O(n)。
例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,那么最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18
由于本人C\C++水平有限,所以使用java语言实现。
思路:从数组的后面排除小于0或者累加小于0的,用max记录被排除的子数组的和的最大值。
/*** * @author lingxiasandu */ public class Test { public static void main(String[] args) { int[] a = {1, -2, 3, 10, -4, 7, 2, -5}; int max = MaxSum(a); System.out.println(max); } /*** * @param a 源数组 * @return 返回子数组和的最大值 */ public static int MaxSum(int[] a){ int sum = 0; int max = 0; for(int i=0;i<a.length;i++){ sum = sum + a[a.length-i-1]; if(a[a.length-i-1] >= 0){ if(max < sum){ max = sum ; } } if(sum < 0){ sum = 0; } } return max; } }
相关推荐
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2, 因此...
从键盘读入8个整数存入数组a中并输出这8个数据。 ⑴求出这8个数据的和、最大值、最小值及平均值。 ⑵求这8个数据的正数之和、负数之和(或正数与负数的个数); ⑶求这8个数据的奇数之和、偶数之和(或奇数与偶数的...
Labview应用技术 使用数组函数寻找数组中负数个数(拓展).docx 学习资料 复习资料 教学资源
资源包括:源代码+详细设计报告+使用说明。 设计一台嵌入式CISC模型计算机, 输入包含5个整数(有符号数)的数组M,输出所有负数的平方和。
汇编键盘输入20个数,将其放在三个数组中,输入的一个,正数一个,负数一个。正数求和输出,负数求个数。
人民邮电出版社汇编教材(王庆生)实验3第2题答案
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 关于连续子数组最大和这个问题,有两种解法,一种是动态规划 解法如下: function ...
算法小程序,将数组中所有的负数置于正数前
5.6 编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中的数据的个数显示出来。 5.7 试编制一个汇编语言程序,求出首地址为DATA的100D字数组中的最小偶数,并把它放在...
将正数转换成负数,负数转换成正数, int main(int argc, char* argv[]) { float k; c.f=-10; k=0-c.f; printf("k=%f\n",k); printf("Hello World!\n"); return 0; }
C语言输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出(博主小白)
labview随机数生成并组成数组.vi
输入一些整数,编程计算并输出其中所有正数的和,输入负数时不累加,继续输入下一个数。输入零时,表示输入数据结束。要求最后统计出累加的项数
简单数组赋值简单的 Java 应用程序,用于从数组中分离正数和负数并将它们放入单独的数组中。 还显示原始数组中的重复数和零数。 该作业是为塞尔维亚 IT 学院的 Core Java 课程完成的米洛斯·乌尔巴诺维奇,7.2015。 ...
循环程序设计实验 试编程统计数据区中正数、零和负数的个数
给定一个n个元素的数组,数组元素全部为整数,负数,正数和0均有可能存在,设设计一个算法,找出连续的几个数组元素相乘积最大
一个有 n 个元素的数组,这 n 个元素既可以是正数也可以是负数,数组中连续的一个或多个元素可以组成一个连续的子数组,一个数组可能有多个这种连续的子数组,求子数组的最大值。例如,对于数组 [1,-2,4,8,-4,7...
计算机组组成原理课程设计,设计一台嵌入式CISI模型计算机(输入包含5个整数(有符号数)的数组M,输出所有负数的平方和)。文件中CISI可以直接使用,其他文件夹是各个器件的的代码。
《正数和负数》导入
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为...