博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最大子数组
阅读量:5969 次
发布时间:2019-06-19

本文共 836 字,大约阅读时间需要 2 分钟。

package 个人作业;importjava.util.Scanner;public class shuzu {	private static Scanner scan;	public static void main(String[] args) {		// 确定元素的个数		System.out.println("输入数组元素个数:");		scan = new Scanner(System.in);		int n = scan.nextInt();		// 循环输入数组元素		System.out.println("输入数组");		int[] x = new int[n];		for (int i = 0; i < n; i++) {			x[i] = scan.nextInt();		}		// 最大子数组的起始位置(即当前最大子数组)		int max = Integer.MIN_VALUE;// 设置成最小整数		int sum = 0;// 记录数组个元素相加的和		for (int i = 0; i < n; i++) {// 将个元素依次相加并进行判断			sum += x[i];			if (sum > max) {// 如果求得总和大于之前的最大值的话,就将sum赋值给max				max = sum;			}			// if (sum < 0) {// 如果当前求得的数组的和为负数,就把他清除为0(输出的结果就是非负整数)			// max = 0;			// }		}		System.out.println("最大子数组的和为:" + max);	}	} 这是比较简单的一个求最大子数组的方法,我自己写的那个,不满足o(n),这是在网上找到一个贪心算法,这个很简单,在经过同学的帮助下我也慢慢理解了

  

转载于:https://www.cnblogs.com/liuxiaojieqqq/p/10615222.html

你可能感兴趣的文章
常用的激活函数
查看>>
sqlcmd
查看>>
Excel 已经检测到"XXX.xsl"是SYLK文件,但是不能将其加载的问题
查看>>
(基础篇)PHP获取时间、时间戳的各种格式写法汇总
查看>>
浅析面向对象开发
查看>>
Hystrix降级逻辑中如何获取触发的异常
查看>>
【跃迁之路】【535天】程序员高效学习方法论探索系列(实验阶段292-2018.07.25)...
查看>>
mac系统下git、mysql、nginx、php的环境搭建
查看>>
JavaScript面向对象编程——Array类型
查看>>
让IE兼容background-size的方法_background-size ie下使用
查看>>
中国发布自主开发的域名系统基础软件 “红枫”
查看>>
优秀程序员必须知道的32个算法,提高你的开发效率
查看>>
在WPF中实现平滑滚动
查看>>
java并发编程实践 part 01 --&gt; 线程创建方式
查看>>
PHP查看PECL模块包含的函数
查看>>
dedecms上传图片不自动改名,以利于seo图片优化
查看>>
Java新手小程序之三
查看>>
我的友情链接
查看>>
Spring Web Application Security
查看>>
grant&revoke
查看>>