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);
            
            
            
            
        }
    
    }

    截图:

  • 相关阅读:
    将图片保存到数据库中及转换
    svn 插件地址
    反射
    android 使用Sax 读取xml
    抓取 网页信息
    客户端测试
    简单多线程+委托+事件
    postman实战四
    Postman练习
    Jmeter练习二添加书籍信息
  • 原文地址:https://www.cnblogs.com/chenpengmeng/p/5369852.html
Copyright © 2011-2022 走看看