一维连续数组实现

本文介绍了一个Java程序,用于寻找并打印出数组中所有连续子数组的最大和,包括找到该最大和的子数组范围。程序首先通过用户输入确定数组大小,并接收数组元素。然后,它遍历所有可能的子数组,计算每个子数组的和,记录下最大和及其对应的子数组范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 import java.util.Scanner;
 2 
 3 public class shuzu {
 4     public static void main(String[] args){
 5         int number,maxsum;//定义2个整型
 6         
 7         int a;
 8         Scanner in = new Scanner(System.in);//输入
 9         System.out.println("请输入数组大小");
10         number=in.nextInt();//将输入值存于number·
11         int q=0;
12         for(q=0;q<number;q++) {
13             q+=q;
14         }
15         int array[]=new int[number];//由上述操作定义数组
16         System.out.println("请输入数组的值:");
17         for(a=0;a<number;a++) {
18                  array[a]=in.nextInt();
19         }  //数组定义完成
20         //查询最大数组
21      
22         int i,j,k,p,u;
23       
24         int max[]=new int [number];
25         for(p=1;p<q;p++){
26         for(i=0;i<number;i++){
27             max[i]=array[i];
28             k=array[i];
29             for(j=i+1;j<number;j++){
30                 k=k+array[j];
31                 if(k>max[i]){max[i]=k;}
32                 int l=i+1;
33                 int o=j+1;
34              System.out.println("第"+i+"组,当前数组之和最大值为:"+k+",由第"+l+"个元素到第"+o+"个元素相加");
35             
36              //    System.out.println("目前已检验到第"+p+"个连续子数组,共有"+q+"个连续子数组");
37             //    break;
38                  }
39             }
40         }
41         
42         int m=max[0];
43         for(i=1;i<number;i++)
44         {
45             if(max[i]>m)
46             {
47                 m=max[i];
48             }
49             
50         }
51         System.out.println("所有连续子数组和的最大值为:"+m);
52                 
53 
54 }
55 }
View Code

 

转载于:https://www.cnblogs.com/yeshenfeng/p/10771934.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值