關於計算所有連續子串行的最大和

2021-09-19 16:19:08 字數 546 閱讀 5615

以下是在關於計算所有連續子串行的最大和問題中最暴力的方法

def lagerset_sum(arr)

res = arr[0]

sum = res

for i in range(1,len(arr)):

if sum>0:

sum = sum + arr[i]

else:

sum = arr[i]

if sum>res:

res = sum

return res

但是我們能夠在此**的基礎上再優化

及將if語句中比較用max()去處理這個問題

def largest_sum(arr):

sum = max_sum = 0

for n in arr:

sum = max(sum + n, 0)

max_sum = max(sum, max_sum)

return max_sum

我們可以看出在優化後他的迴圈次數和**量大大減少

連續子串行最大和

這道題目使用最大和問題的分治演算法 package com.divide.cc author sunnyboy runtime is o nlogn public class sumsequence int maxsum maxsubsequencesum a system.out.println ...

連續子串行最大和問題

author wawlian 連續子串行最大和問題 public class maxsubsequence return maxsum 連續子串行最大和問題的平方求解演算法 param a 整數序列組成的陣列 return 最大子串行之和的值 public static int maxsubsequ...

連續子串行最大和問題!!!

public class programlist1 初始化陣列函式 public static int initarray int arrayparamnum 根據使用者鍵入呼叫指定的函式 public static int execfunction int n,int a 蠻力演算法 戲稱 費勁演...