• 数组


    1、题目要求:

            a、输入一个整数数组,数组里有正数也有负数。

            b、数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。

            c、求所有子数组的和的最大值。

     2、思路构想:

       求数组中的一个元素(a)和上一个元素(b)的和(c),将 a 和 c 进行比较,若 c > a ,则用 c 代替 a 的值,此操作遍历整个数组,此时最大子数组的和就会被保存在数组中的某一个位置。最后再次遍历数组,求得最大子数组的和。

          3、思路构想的代码解释:

    1、通过用户输入数组容量,随机产生一个整型数组

    2、通过循环遍历所有元素求出以该元素为首节点的所有子数组的和,将其存入一个list中

    3、求出list的最大值

    public static int getResult(ArrayList<Integer> array) {

            int sum = 0;

            int result = array.get(0);

            for (Integer integer : array) {

                if(sum<=0)

                    sum = integer;

                else

                    sum += integer;

                if(sum>result)

                    result = sum;

            }

            return result;

        }

  • 相关阅读:
    hd2068错排+组合
    POJ 1061 青蛙的约会 扩展欧几里得
    POJ 2115 C Looooops扩展欧几里得
    扩展欧几里得算法
    欧拉函数模板
    高精度模板
    快速幂模板
    HDU 4445 Crazy Tank 高中物理知识忘得差不多了
    POJ 3087 Shuffle'm Up 模拟,看着不像搜索啊
    HDU 4452 Running Rabbits 模拟
  • 原文地址:https://www.cnblogs.com/aiyyue/p/13084925.html
Copyright © 2020-2023  润新知