一维数组debug

本文详细介绍了一种求解连续子数组最大和的算法实现,通过动态规划思想,逐步计算并找出给定数组中所有可能的连续子数组的最大和。文章提供了一个完整的Java代码示例,包括输入数组大小及元素,最后输出连续子数组的最大和。
摘要由CSDN通过智能技术生成
package test;

import java.util.*;

public class test {
  
    
     public static void main(String[] args) throws InterruptedException {
    	 Scanner sc=new Scanner(System.in);
         System.out.print("请输入数组中数的个数:");
         int n=sc.nextInt();
         
         System.out.print("请输入"+n+"个整数:");
         int a[]=new int[n]; 
         for(int i=0;i<n;i++)//n个随机数
         {   
           a[i]=sc.nextInt();
     }
         
  
         int b =  FindGreatestSumOfSuba(a);
   
         System.out.println("连续子数组的最大和为:"+b);
         Thread.sleep(1000);
     }
  
     public static int FindGreatestSumOfSuba(int[] a) throws InterruptedException {
            int len = a.length;
            if (len == 0){
             return 0;
            }
            int[] c = new int[len];
            c[0] = a[0];
            int d = a[0];
            System.out.println("第1步:累加子数组和:"+c[0]+",最大子数组和:"+d);
            Thread.sleep(1000);
            for(int i=1;i<a.length;i++){
                 if(c[i-1]>0){
                     c[i] = c[i-1] + a[i];
                 }else{
                     c[i] = a[i];
                 }
                 if(c[i] > d){
                     d  = c[i];
                 }
                System.out.println("第"+(i+1)+"步:累加子数组和:"+c[i]+",最大子数组和:"+d);
                Thread.sleep(1000);
            }
            return d;
     }
}

  

 

转载于:https://www.cnblogs.com/zlj843767688/p/10781075.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值