zoukankan      html  css  js  c++  java
  • 求环形连续子数组的和的最大值

    课上老师把连续子数组求和的题目改为让子数组首尾相接再求最大子数组的和。

    我的处理方法:新建一个二倍原数组长度b的数组d[  ],然后从d[0]到d[b]分别生成b个分数组,再分别求子数组和,再比较。

    package wodeshiyao;
    
    import java.util.Scanner;
    
    
    public class shiyan321 {
        static Scanner scan=new Scanner(System.in);
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            int b;    //数组长度
            System.out.println("请输入数组长度:");
            b=scan.nextInt();
            int c[]=new int [b];//定义规定长度的整型数组
            System.out.println("请输入数组元素:");
            for(int i=0;i<b;i++)
            {
                c[i]=scan.nextInt();    //a[]是原数组
            }
            
        int d[]=new int [2*b-1]; //d[]是双倍数组
        for(int p=0;p<b;p++){
            d[p+b]=d[p];
        }
        int l,n;
        int e[]=new int [b];    //e[]是最大值数组和
        int f[]=new int [b];    //存放当前分数组的值
        for(l=0;l<b;l++)//第l号数组
        {    
            
            for(n=0;n<b;n++)    //确定分数组 
                {f[n]=d[l+n];}
            
            int i,j,k;
            int max[]=new int [b];
            for(i=0;i<b;i++){
                max[i]=f[i];
                k=f[i];
                for(j=i+1;j<b;j++){
                    k=k+f[j];
                    if(k>max[i])
                    {max[i]=k;}
                }
            }
            
            //选最大数组和
            int m=max[0];
            for(i=1;i<b;i++)
            {
                if(max[i]>m)
                {m=max[i];}
            }
            e[l]=m;
        }
        int m=e[0];
        int i;
        for(i=1;i<b;i++)
        {
            if(e[i]>m)
            {m=e[i];}
        }
            
            System.out.println("所有连续子数组和的最大值为:"+m);
            
        }
    }
            

    但是我的代码还存在错误,改正后再发。

  • 相关阅读:
    LoRa硬件调试-前导码
    LoRaWAN调试踩坑心得(二)
    LoRaWAN调试踩坑心得(一)
    LoRaWAN_stack移植笔记(七)_数据包的接收发送
    LoRaWAN协议(七)--完整数据流程
    Android Studio Error while executing: am start -n错误解决方案
    Spring系列(八)
    并发工具类简介
    CAS
    多线程基础(一)线程创建
  • 原文地址:https://www.cnblogs.com/jmdd/p/10591284.html
Copyright © 2011-2022 走看看