zoukankan      html  css  js  c++  java
  • 课后作业(求最大数组)

    思路:

    设定三个变量,result分别是(子数组中的和的最大值,初始值为array[0])、result(当前子数组的和,初始值为array[0]);

    先让用户自己设定数组的长度,之后输入数组。从数组第一位开始遍历数组, max=max+array[i],若result<0,则令max=0;若max>result,则result=max;最后当循环运行结束后,输出最后result的值。

    问题

    计算结果时for循环起始值应从1开始,若从0起始的话会多算一遍数组array[0];

    package shuzhi;
    import java.util.Scanner;
    public class shuzuzhi {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner in=new Scanner(System.in);
            System.out.println("请输入数组长度:");
            int n=in.nextInt();
         
            int array[]=new int[n];
            System.out.println("请输入相应的整数:");
            for(int i=0;i<n;i++)
            {
                array[i]=in.nextInt();
            }
            
            int max=array[0];
            int result =array[0];
            for(int i=1;i<n;i++)
            {
                max=max+array[i];
                if(max<0)
                {
                   max=0;
                }
                if(max>result)
                {
                    result=max;
                }
            
            } 
           
           System.out.print("子数组的最大值为:"+result);
            
            
            
            
        }
    
    }

    截图:

  • 相关阅读:
    第二十一章 PHP编译安装(centos7)
    第二十章 nginx常见问题
    第十九章 keepalived高可用
    dijkstra
    求逆序对
    A
    P2014 [CTSC1997]选课
    樱花 混合背包
    1401D
    CF1343D
  • 原文地址:https://www.cnblogs.com/chenpengmeng/p/5369852.html
Copyright © 2011-2022 走看看