Java 数组中寻找最大子数组
2024-08-30 06:38:12
程序设计思想:
依次将数组划分开,先判断一个元素的单个数组大小,接下来两个,依次上升,最后将所得结果进行比较赋值,输出最大结果。 1 package ketangTest;
//张生辉,康治家 2017.3.20
public class Test {
public static void main(String args[]){
int b[]={-7,9,-2,84};
int a[]={-7,9,-2,84,-7,9,-2,84};
int max,max2,max3,max4;
max=a[0];
int Max=max;//Max值每次都与最大值判断,之后替代
for(int i=0;i<a.length;i++)
{
if(a[i]>max)
{
max=a[i];
}
max2=max;
if(i<a.length-1)//处理越界问题,判断越界跳过即可
{
if(a[i]+a[i+1]>max2)
{
max2=a[i]+a[i+1];
}
}
max3=max2;
if(max3>Max)
{
Max=max3;
}
if(i<a.length-2)
{
if(a[i]+a[i+1]+a[i+2]>max3)
{
max3=a[i]+a[i+1]+a[i+2];
}
}
max4=max3;
if(max4>Max)
{
Max=max4;
}
if(i<a.length-3)
{
if(a[i]+a[i+1]+a[i+2]+a[i+3]>max4)
{
max4=a[i]+a[i+1]+a[i+2]+a[i+3];
}
}
if(max4>Max)
{
Max=max4;
} }
System.out.println(Max);
} }
程序运行结果截图:
程序编译错误结果分析:
因为在判断数组时需要利用一个For循环,最后导致在判断一个元素的For循环下,判断两个及以上的时候会出现越界,于是加入判断条件来限制就可以解决这问题。
最新文章
- ILspy反编译工具
- 少见的sql
- ecshop绕过验证码暴力破解
- 如何让其他计算机访问我的计算机上数据库mysql
- 使用Git上传本地项目代码到github
- Hadoop上路-01_Hadoop2.3.0的分布式集群搭建
- log.sh
- Ubuntu基本设置
- 改造vim
- VUE2.0实现购物车和地址选配功能学习第二节
- 【BZOJ4372】烁烁的游戏(动态点分治)
- 代码简洁的滑动门(tab)jquery插件
- C# -- 二分法查找
- python2/3 利用psycopg2 连接postgreSQL数据库。
- springfox+swagger2生成API文档
- Oracle中如何写存储过程
- Java 内部类、静态内部类、匿名内部类
- Biorhythms(中国剩余定理)
- java.lang.ClassCastException: android.widget.ImageButton异常处理
- c# public private protected internal protected internal