間違った最大合計サブ配列(kadaneのアルゴリズム)を返しますが、最大合計は正しい

BobStack

以下に示すのは、最大のサブ配列を返すためのPython2.7のkadaneのアルゴリズムのコードです。正しい最大合計(MSS変数)を取得していますが、指定されたサンプルリストでは、間違ったサブ配列が返されています。誰かが私に理由を説明してもらえますか?

A = [-2,1,-3,4,-1,2,1,-5,4]
M = max(A)
L = len(A)
if(M < 0):
   print M
ans = []
subans = []
MSS,subsum,i = 0,0,0

while(i<L):
   subans.append(A[i])
   subsum = sum(subans)
   if(subsum<0):
       subans=[]
       i+=1
   else:
       if(subsum>MSS):
           MSS=subsum
           ans=subans
           i+=1
       else:
           i+=1
print ans
アナンドSクマール

あなたの問題はあなたがそうするとき-

ans=subans

あなただけの参照格納しているsubansのをansあなたは内の何かを変更する場合、subans変更はまたに反映、ans(彼らは同じ参照されているとおり)。

あなたはのコピー保存する必要がありsubans中をans代わりに直接参照を、。

例-

ans = []
subans = []
MSS,subsum,i = 0,0,0

while(i<L):
   subans.append(A[i])
   subsum = sum(subans)
   if(subsum<0):
       subans=[]
       i+=1
   else:
       print('subsum - ' + str(subsum))
       print('MSS - ' + str(MSS))
       if(subsum>MSS):
           MSS=subsum
           ans=list(subans) #more ways to do this, like subans[:] also works, and copy.copy(subans) , etc.
           i+=1
       else:
           i+=1

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Kadaneのアルゴリズムには、合計ではなく実際の最大サブ配列またはインデックスを返すのに十分な情報が保持されていますか?

分類Dev

Kadaneのアルゴリズムが最大の連続合計に対して正しい値を返さないのですか?

分類Dev

kadaneのアルゴリズムを使用して、サブアレイの最大合計とともにサブアレイも返す

分類Dev

JavaScriptアルゴリズムの質問:配列から最大の合計を持つ連続したサブ配列を見つけてください

分類Dev

Kadaneアルゴリズムを使用したモジュロ最大サブ配列

分類Dev

配列をサブ配列に分割するアルゴリズム。すべてのサブ配列の最大合計が可能な限り低くなります。

分類Dev

Kadaneのアルゴリズム、連続する要素の最大合計

分類Dev

配列の要素の合計が間違った値を返します

分類Dev

連続サブ配列で最大の合計を見つけるためのこの再帰的アルゴリズムには、何か利点がありますか?

分類Dev

最大合計値まで適合するように繰り返し可能な値のセットを見つけるためのアルゴリズム

分類Dev

見つかった最大サブアレイの要素を出力するためのKadaneのアルゴリズム?

分類Dev

合計が最大の配列を返します。同点の場合は、

分類Dev

Pythonのリストアルゴリズムでk個の連続した数の最大合計の実行時間を短縮する方法

分類Dev

これは合計アルゴリズムの正しい出力ですか?

分類Dev

配列比較アルゴリズムが間違った出力を返すのはなぜですか?

分類Dev

合計が0に等しい最大のサブ配列

分類Dev

行の合計の結果は正しいですが、列の合計は3 x4配列に対して間違った結果をもたらします

分類Dev

関数は、配列入力のサイズが1の場合にのみ間違った値を返します

分類Dev

サブアレイの最大合計を見つけるためのアルゴリズムを理解できません

分類Dev

合計の最大の組み合わせを実装するためのソートアルゴリズム

分類Dev

浮動小数点とターゲットの合計またはターゲットの合計に最も近い合計を使用したサブセット和問題の多項式\疑似多項式アルゴリズム

分類Dev

カダネのアルゴリズムで最大のサブ配列を返す方法は?

分類Dev

最大IDがわかっている場合、MySQLはintサイズを計算します

分類Dev

(受信テーブルと受信テーブル)で繰り返されるアイテムを計算しようとすると、SQLクエリが間違った合計を返します

分類Dev

2つの合計アルゴリズム:私のソリューションは未定義を返しますが、期待される出力を出力します

分類Dev

SQL Server:合計関数が間違った値を返しています

分類Dev

削除を使用した動的列の値の合計の計算が間違っています

分類Dev

Kadaneアルゴリズムの実装が誤った結果を返す

分類Dev

合計が値になる5つの要素の配列を検索するためのアルゴリズム

Related 関連記事

  1. 1

    Kadaneのアルゴリズムには、合計ではなく実際の最大サブ配列またはインデックスを返すのに十分な情報が保持されていますか?

  2. 2

    Kadaneのアルゴリズムが最大の連続合計に対して正しい値を返さないのですか?

  3. 3

    kadaneのアルゴリズムを使用して、サブアレイの最大合計とともにサブアレイも返す

  4. 4

    JavaScriptアルゴリズムの質問:配列から最大の合計を持つ連続したサブ配列を見つけてください

  5. 5

    Kadaneアルゴリズムを使用したモジュロ最大サブ配列

  6. 6

    配列をサブ配列に分割するアルゴリズム。すべてのサブ配列の最大合計が可能な限り低くなります。

  7. 7

    Kadaneのアルゴリズム、連続する要素の最大合計

  8. 8

    配列の要素の合計が間違った値を返します

  9. 9

    連続サブ配列で最大の合計を見つけるためのこの再帰的アルゴリズムには、何か利点がありますか?

  10. 10

    最大合計値まで適合するように繰り返し可能な値のセットを見つけるためのアルゴリズム

  11. 11

    見つかった最大サブアレイの要素を出力するためのKadaneのアルゴリズム?

  12. 12

    合計が最大の配列を返します。同点の場合は、

  13. 13

    Pythonのリストアルゴリズムでk個の連続した数の最大合計の実行時間を短縮する方法

  14. 14

    これは合計アルゴリズムの正しい出力ですか?

  15. 15

    配列比較アルゴリズムが間違った出力を返すのはなぜですか?

  16. 16

    合計が0に等しい最大のサブ配列

  17. 17

    行の合計の結果は正しいですが、列の合計は3 x4配列に対して間違った結果をもたらします

  18. 18

    関数は、配列入力のサイズが1の場合にのみ間違った値を返します

  19. 19

    サブアレイの最大合計を見つけるためのアルゴリズムを理解できません

  20. 20

    合計の最大の組み合わせを実装するためのソートアルゴリズム

  21. 21

    浮動小数点とターゲットの合計またはターゲットの合計に最も近い合計を使用したサブセット和問題の多項式\疑似多項式アルゴリズム

  22. 22

    カダネのアルゴリズムで最大のサブ配列を返す方法は?

  23. 23

    最大IDがわかっている場合、MySQLはintサイズを計算します

  24. 24

    (受信テーブルと受信テーブル)で繰り返されるアイテムを計算しようとすると、SQLクエリが間違った合計を返します

  25. 25

    2つの合計アルゴリズム:私のソリューションは未定義を返しますが、期待される出力を出力します

  26. 26

    SQL Server:合計関数が間違った値を返しています

  27. 27

    削除を使用した動的列の値の合計の計算が間違っています

  28. 28

    Kadaneアルゴリズムの実装が誤った結果を返す

  29. 29

    合計が値になる5つの要素の配列を検索するためのアルゴリズム

ホットタグ

アーカイブ