zoukankan      html  css  js  c++  java
  • 返回一个整数数组中最大子数组的和

    设计思想:先输入要输入的数组的元素的个数,然后输入该数组的所有元素,将所有连续元素的正整数作为一个子集,然后算出所有子集的和,然后逐渐比较算出最大子集的和

    出现的问题是 时间复杂度较高不是o(n),而是o(n方);

    接下来还有继续的改进。

    package test;
    
    import java.util.Scanner;
    
    public class test {
    	public static void main(String args[])
    	{
    		Scanner sc=new Scanner(System.in);
    		System.out.println("请输入数组个数:");
    		int n=sc.nextInt();
    		int []a=new int[n];
    		System.out.println("请输入要输入数组:");
    		for(int i=0;i<n;i++)
    		{
    			a[i]=sc.nextInt();
    		}
    		sc.close();	
    		int n1=0;
    		for(int i=1;i<=n;i++)
    		{
    			n1=n1+i;
    		}
    		int [] b=new int[n1];//子集数组的和
    		int m1=0;
    		for(int i=0;i<n;i++)
    		{
    			int m=0;
    			for(int k=0;k<n-i;k++)
    			{   
    			    m=m+a[i+k];
    				b[m1]=m;
    				m1++;
    			}
    		}
    		for(int i=0;i<n1-1;i++)
    			for(int k=0;k<n1-1-i;k++)
    			{
    				if(b[k]<b[k+1])
    				{
    					int m2=b[k];
    					b[k]=b[k+1];
    					b[k+1]=m2;
    				}
    			}
    		System.out.println("最大的子数组和为"+b[0]);
    	}
    }
    

      

  • 相关阅读:
    Linux目录结构详解
    Linux快捷键列表
    正则表达式
    Python内置函数7
    Python内置函数6
    Python内置函数5
    什么才是java的基础知识?
    单点登录原理与简单实现
    window系统 查看端口 被哪个进程占用了
    Linux Tomcat日志查看实用命令
  • 原文地址:https://www.cnblogs.com/zlj843767688/p/10507253.html
Copyright © 2011-2022 走看看