• 个人作业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();
        }
    }
    
  • 相关阅读:
    Android 内存溢出解决方案(OOM) 整理总结
    mysql数据库基本操作
    java基础集合框架——List、Set、Map概述(java集合一)
    Android基础常用日期操作工具类
    Android 中的adapter和作用以及常见的adapter
    Android中的SimpleAdapter
    android中selector使用
    Android 中消息处理机制-Looper、Handler、Thread(一)
    Android 中消息处理机制-Looper、Handler、Thread (二)
    android中MessageQueue , Message , Looper , Handler(三)
  • 原文地址:https://www.cnblogs.com/zzstdruan1707-4/p/10508158.html
Copyright © 2020-2023  润新知