zoukankan      html  css  js  c++  java
  • 个人作业1-数组

    一开始做这个题(返回一个整数数组中最大子数组的和)一点思路都没有,后来是靠老师的提醒,以及一些同学的讲解,才知道了再不考虑时间复杂度的情况下应该怎么做,很遗憾,自己还没有想到别的办法,从网上找了一个,我得学学,然后后期再补充新的总结体会。

    这是我自己写的代码,还没有实现题目要求,时间复杂度不为O(n).

    package array;
    
    import java.util.Scanner;
    
    public class array1 {
    
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入数组的长度");
            int n=sc.nextInt();
            int array[]=new int[n];
            int array2[]=new int[n];
            System.out.println("请依次输入数组的每个值");
            for(int i=0;i<n;i++) {
                 array[i]=sc.nextInt();
            }
            for(int i=0;i<n;i++) {
                array2[i]=0;
            }
            int max;
            for(int i=0;i<n;i++) {
                max=array[i];
                int sum=0;
                System.out.println("abc"+max);
                for(int j=i;j<n;j++) {
                    sum=sum+array[j];
                if(max<sum) {
                    max=sum;
                }
                }
                    array2[i]=max;    
                    System.out.println("def"+max);
            } 
            int k=array2[0];
            for(int i=0;i<n;i++) {
                System.out.println("ghi"+array2[i]);
            }
            for(int i=0;i<n;i++) {
                if(array2[i]>k) {
                    k=array2[i];
                }
            }
            System.out.println("最大值"+k);
        }
    
    }

     这是我从网上找的一个符合要求的

    public class array {
    
        public static void main(String[] args){
            int number,maxsum,maxstart;
            int i;
            Scanner in = new Scanner(System.in);
            System.out.println("请输入数组的大小:");
            number=in.nextInt();
            int array[]=new int[number];
            System.out.println("请输入数组的值:");
            for(i=0;i<number;i++)
            {
                array[i]=in.nextInt();
            }
            maxsum=array[0];
            maxstart=array[0];
            for(i=1;i<number;i++)
            {
                if(maxstart<0)
                {
                    maxstart=0;
                }
                maxstart+=array[i];
                if(maxstart>maxsum)
                    maxsum=maxstart;
                
            }
            System.out.println(maxsum);
            in.close();
        }
    }
    
  • 相关阅读:
    ArcGIS 10.4全套下载及安装教程详细版
    .Net 并发写入文件的多种方式
    关于Spring中的ApplicationContext,BeanFactory,FactoryBean整理
    Python十大经典算法之冒泡排序
    排序算法总结
    was compiled against a different Node.js version using
    kibana7.14.0报错解决方案
    Alpha阶段项目复审
    事后诸葛亮分析(广工扫“蝗”小分队)
    第七篇 Scrum冲刺博客
  • 原文地址:https://www.cnblogs.com/zzstdruan1707-4/p/10508158.html
Copyright © 2011-2022 走看看