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

    当看到这道题目的时候,没有理解清楚题目,在(数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和)这个条件想了想方法,不知道该如何去写。

    后来理解清楚后用了这个方法去写:把第一个数当成一个子数组、第1、2个数在组成一个数组、第1、2、3数在组成一个数组,以此类推 求出每个数组的和,并将每个数组的和存到另一个数组中

    代码如下:

    for(int j=0;j<a.length;j++)
    {
    a[j] = Integer.parseInt(s[j]);
    sum=sum+a[j];
    b[m]=sum;
    m++;
    }

    接下来开始比较每个和的大小,然后输出最大值。

    max=b[0];
    for(int i=1;i<m;i++)
    {
    if(max<b[i])
    {
    max=b[i];
    }
    }
    System.out.println("max="+max);
    }

    最后那个复杂程度不知道该如何去写,还没有完善。

    下面是整个代码

    package shuzu;
    import java.util.Scanner;
    public class main {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner sc = new Scanner(System.in);
            String str=sc.nextLine().toString();
            String s[]=str.split(" ");
            int sum=0,m=0;
            int max = 0;
            int a[]=new int[s.length];
            int [] b=new int[30];
            for(int j=0;j<a.length;j++)
            {
                a[j] = Integer.parseInt(s[j]);
                  sum=sum+a[j];
                  b[m]=sum;
                  m++;            
            }
            for(int k=0;k<m;k++)
            {
                System.out.println("sum="+b[k]); 
            
            }
            max=b[0];
            for(int i=1;i<m;i++)
            {
                if(max<b[i])
                {
                    max=b[i];
                }
            }
            System.out.println("max="+max);
        }
        
    }

  • 相关阅读:
    17. Letter Combinations of a Phone Number
    16. 3Sum Closest
    15. 3Sum
    14. Longest Common Prefix
    13. Roman to Integer
    12. Integer to Roman
    11. Container With Most Water
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
  • 原文地址:https://www.cnblogs.com/lishengming00/p/10500534.html
Copyright © 2011-2022 走看看