定义一个数组返回最大子数组的值(1)
对于老师上课的题目,要想获得子函数最大值,首先进行数组的遍历,在遍历起初,对最大值进行初始化为数组的第一个元素,每次遍历,求得该子数组的和,并将此和与最大值进行比较,若小于
最大值,则进行下一次的遍历,直到结束。此处用到三个for循环,来进行次数的控制。第一个 for(i = 0; i <length; i++),用来完成所有数组的循环,第二个for(j = i; j
<length; j++)用来表示从第几个元素开始,寻找子数组,第三个 for( k = i; k <= j; k++) ,用来获取每个子数组的和,等到遍历完全结束,返回最大值输出。
package bigzishuzu; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub int [] num=new int[30]; int n; int i,j; int cishu; int sum; int max; max=0; cishu=0; System.out.println("请输入数组的个数:"); @SuppressWarnings("resource") Scanner scan=new Scanner(System.in); n=scan.nextInt(); int geshu=((1+n)*n)/2; int [] daxiao=new int[300]; for(i=0;i<n;i++) { //完成数组的的输入 num[i]=scan.nextInt(); } for(i=0;i<n-0;i++) { sum=0; for(j=i;j<n;j++) { sum=sum+num[j]; System.out.println("第"+cishu+"个子数组的和为:"+sum); daxiao[cishu]=sum; cishu++; } } max=daxiao[0]; for(int l=0;l<geshu;l++) { if(max<daxiao[l]) { max=daxiao[l]; } } System.out.println("最大子数组和为:"+max); } }
是多疑还是去相信
谎言背后的忠心
或许是自己太执迷
命题游戏
沿着他的脚步 呼吸开始变得急促
就算看清了面目 设下埋伏
真相却居无定处
I swear I'll never be with the devil
用尽一生孤独 没有退路的路
你看不到我
眉眼焦灼却不明下落
命运的轮轴
伺机而动 来不及闪躲
沿着他的脚步 呼吸开始变得急促
就算看清了面目 设下埋伏
真相却居无定处
I swear I'll never be with the devil
用尽一生孤独 没有退路的路
你看不到我
眉眼焦灼却不明下落
命运的轮轴
伺机而动 来不及闪躲
你看不到我
眉眼焦灼却不明下落
命运的轮轴
伺机而动 来不及闪躲
黑夜和白昼
你争我夺 真相被蛊惑
心从不退缩
这天堂荒漠 留给孤独的猎手