• java数组中最大的子数组之和


    一个有N个整数元素的一维数组,那么子数组之和的最大值是什么?

    例如:-2 5 3 -6 4 -8 6 maxsum=8

    无论是高中学习c语言还是现在的Java,首先想法是就是找出所有的子数组,重复计算,然后求其和,取最大。
    int Maxsum1(int *array,int n)
    {
    int max=-INF;
    int sum;
    int i,j;
    for(i=0;i<n;i++) {="" sum="0;" for(j="i;j<n;j++)" sum+="array[j];" if(sum="">max)
    max=sum;
    }
    }
    return max;
    }
    </n;i++)>

    还有一种想法,累加。重复累加,只要大于0,就说明当前的“和”可以继续增大,如果小于0了,说明“之前的最大和”已经不可能继续增大了,就从新开始。
    int Maxsum3(int *array,int n)
    {
    int max=-INF;
    int sum=0;
    for(int i=0;i<n;i++) {="" if(sum<0)="" sum="array[i];" else="" sum+="array[i];" if(sum="">max)
    max=sum;
    }
    return max;
    }
    </n;i++)>

    附网络上高端的动态规划求解
    2个数组的
    更短的

    真正接受的思路:
    从左边开始,在这个过程中记录一个当前子数组的最大值,前几项小于零时则刷新所有数据,从后面一个数重新开始,当发现累加结构大于记录的最大值时,则替换,最后比较完后,记录的最大值就为真实的最大值。

    感谢各位网络技术好人的分享==

  • 相关阅读:
    洛谷P1421 小玉买文具
    洛谷P1035 级数求和
    洛谷 P2337 【[SCOI2012]喵星人的入侵】
    洛谷P1002 过河卒
    洛谷 P4073 [WC2013]平面图
    洛谷 P4705 玩游戏
    python3.7-初学篇-06
    python3.7-初学篇-04
    python3.7-初学篇-03
    python3.7-初学篇-02
  • 原文地址:https://www.cnblogs.com/ykl10/p/6598507.html
Copyright © 2020-2023  润新知