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

    题目要求:

      

     设计思路:

      1、随机生成一个数组

      2、对数组中每个成员判断其前一个数是否大于0,若大于0该成员变更为其本身加上前一个数,若小于0则不变

      3、遍历数组找到最大值即为所求

    源码

    package main;
    
    public class count {
    
        public static void main(String[] args) {
            
            System.out.println("当前数组为:");
            int n = (int) (Math.random()*20);
            int[] arr = generateArray(n, 100, -100);
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i]+" ");
            }
            System.out.println();
            
            for (int i = 1; i < arr.length; i++) {
                if (arr[i-1] > 0) {
                    arr[i] = arr[i] + arr[i-1];
                }
            }
            int max = arr[0];
            for (int i = 1; i < arr.length; i++) {
                if(arr[i]>max)
                    max = arr[i];
            }
            System.out.println("最大子数组之和为:
    "+max);
    
        }
        
        public static int[] generateArray(int len,int max,int min)
        {
            int[] arr = new int[len];
            for (int i = 0; i < arr.length; i++) {
                arr[i] = (int)(Math.random()*(max-min)+min);
            }
            return arr;
        }
    
    }

    结果样例

  • 相关阅读:
    Android的各版本间的区别总结
    深入浅出Android开发之Surface介绍
    android中完全退出当前应用程序的四种方法
    android离线地图源码
    坐标系
    mysql安装
    linux磁盘空间清理
    HttpClient教程
    TIME_WAIT过多
    c3p0配置详解
  • 原文地址:https://www.cnblogs.com/52bb/p/12365528.html
Copyright © 2011-2022 走看看