博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
个人作业1-——数组
阅读量:6976 次
发布时间:2019-06-27

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

1.问题

     返回一个整数数组中最大子数组的和。

     要求: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。

2.问题分析和设计思想

      拿到这个问题首先是要有一个整形的数组,这个数组中有正数也有负数,并且概率完全相同。这就要用到生成随机数的Math.random()方法产生一个随机数,这个随机数有正有负,就用到一个if语句来决定这个随机数是正是负。最核心的是一个三层循环,最外层循环控制数组的头,中间层控制循环数组的尾,最内层控制数组从头加到尾。这样就实现了求全部子数组的和。然后通过不断比较就得到了最大子数组的和。

3.源代码

   

package shuzhu;import java.util.*;public class shuzhu {     public static void main(String[] args)     {     Scanner input=new Scanner(System.in);     System.out.print("请输入数组中数的个数:");     int num=input.nextInt();     int max=0;          int a[]=new int[num];      for(int i=0;i

 

4测试截图

5总结

     我的这个是最笨的办法实现的这个程序,就是把全部可能的情况求出比较,要另外学习别人先进的思路方法。多多练习。

 

转载于:https://www.cnblogs.com/xuange1/p/10505996.html

你可能感兴趣的文章
坐标旋转公式
查看>>
data目录和binlog目录搬迁的方法
查看>>
ACTIVITI 研究代码 之 模版模式
查看>>
第七周网络攻防作业
查看>>
Ajax.BeginForm 使用过程中遇到的问题
查看>>
vue-cli 搭建的项目处理不同环境下请求不同域名的问题
查看>>
Ubuntu Linux系统下apt-get命令详解
查看>>
【spark 深入学习 03】Spark RDD的蛮荒世界
查看>>
【转载】vi/vim使用进阶: 指随意动,移动如飞 (一)
查看>>
SpringCloud学习成长之十三 断路器聚合监控
查看>>
SSH 中从后台传值到前台JSP,传不过去问题
查看>>
espcms自定义表单邮件字段
查看>>
Scala的Tuple
查看>>
js调用后台方法
查看>>
SQL SERVER 行列转换(动态)
查看>>
JVM内存参数
查看>>
CENTOS6.6下mysql5.7.11的percona-xtrabackup安装与备份
查看>>
第二章--Win32程序运行原理 (部分概念及代码讲解)
查看>>
Web端常见问题总结
查看>>
C++变量学习点
查看>>