返回一个整数数组中最大子数组的和
2016-04-08 17:43
344 查看
一:设计思想
先定义一个与原数组长度相同的空数组,然后将原数组的第一个数赋值给空数组的第一个位置,然后用循环比较原数组的数字与空数组的前一个数字相加是否为负数,得到第二个数组后进行比较就可以得到整数数组中最大子数组的和并且时间复杂度为O(n)。
二:源代码
三:程序结果截图
先定义一个与原数组长度相同的空数组,然后将原数组的第一个数赋值给空数组的第一个位置,然后用循环比较原数组的数字与空数组的前一个数字相加是否为负数,得到第二个数组后进行比较就可以得到整数数组中最大子数组的和并且时间复杂度为O(n)。
二:源代码
//返回一个整数数组中最大子数组的和。 //信1405-1班 20142966 黄伟鹏 import java.util.Scanner; public class shuzu { public static void main(String[] args) { // TODO 自动生成的方法存根 int i,length; System.out.println("请输入要进行比较的数字个数:"); Scanner in=new Scanner(System.in); //定义数组长度 length=in.nextInt(); int list[]=new int[length]; System.out.println("请输入要进行比较的数字:"); Scanner t=new Scanner(System.in); //定义数组的内容 for(i=0;i<length;i++) { list[i]=t.nextInt(); } //定义一个空的存储数组 int size[]=new int[length]; //将数组中的数字相加,求最大值 size[0]=list[0]; for(i=1;i<length;i++) { if(size[i-1]<0) { size[i]=list[i]; } else { size[i]=list[i]+size[i-1]; } } //求出最大值 for(i=0;i<length-1;i++) { if(size[0]<size[i+1]) { size[0]=size[i+1]; } } //输出最大值 System.out.println(size[0]); } }
三:程序结果截图
相关文章推荐
- 学习笔记之使用类模板遇到的重载问题
- 实例详解Spring的事务传播机制(二)
- 【数据库】oracle数据库对象---->视图
- Android中的windowSoftInputMode属性详解
- Android —— 实现推送方式解决方案
- UEditor1.4.3关于上传文件绝对路径的配置
- Mercurial使用笔记(2)
- Cocos2d-x:编译Coco2d-x android 程序出现make: *** No rule to make target ...CC*.o'. Stop.
- html+css报纸排版中的那些事
- 统计单词出现的最多次数(Trie树)
- hibernate -- HQL语句总结
- mysql5.5 物理删除binlog文件导致的故障
- 定时任务总结
- php提交表单中文字符乱码的一种可能性
- CSS —— background 详解
- java中方法的参数传递机制
- HTML —— jquery如何判断checkbox(复选框)是否被选中
- 干货|建议初创团队起初也要构建分布式应用
- php7编译安装与php5共存
- C#命名规范