zoukankan      html  css  js  c++  java
  • 求连续的子数组的最大和

    最大连续子数组的特点

    1、第一个不为负数

    2、如果前面数的累加加上当前数小于当前数,说明这次累加对总体的结果是无效的,如果前面数的累加加上当前数大于当前数,说明这次累加对结果是具有促进效果的,结果在考虑的范围内

    [8,-10,10,23]此数组最大和为33,array[2]到array[3],其余位置都比这个小

    def find_sub(arr):
        #定义两个变量,一个用来存放之前的累加值,一个用来存储当前的最大和
        max_sum=int(arr[0])#定义为第一个为最大
        pre_sum=0
        for i in arr:#遍历数组中的元素
            if pre_sum<0:
                pre_sum=int(i) #如果之前的累加和是小于0的则应该从当前值进行累加
            else:
                pre_sum+=int(i)
                #如果是大于等于0的则需要将当前的数加到当前最大子数组中
            if pre_sum>max_sum:
                max_sum=pre_sum
        return max_sum
    print(find_sub([8,-10,10,23]))
  • 相关阅读:
    2021-4-1 日报博客
    2021-3-31 日报博客
    2021-3-30 日报博客
    2021-3-29 日报博客
    2021-3-27 周报博客
    java
    周末总结六
    java
    java
    java
  • 原文地址:https://www.cnblogs.com/z-x-y/p/10150752.html
Copyright © 2011-2022 走看看