例: シーケンスを= {1,8,2,9}、サブシーケンスの長さ= 2とすると、得られる最大合計はサブシーケンス{8,9}から得られ、その合計8 + 9 = 17です。 このためのアルゴリズムを作成するにはどうすればよいですか?シーケンス内の指定された長さのサブシーケンスを見つけて、そのサブシーケンスの合計が最大になるようにするにはどうすればよいですか?
-1
A
答えて
0
簡単です。
2つの最も高い数字を維持してシーケンスをスキャンするだけです。擬似コード:ループ出力平方メートル+ M1
後
Initialize m1 and m2 to lowest possible element (0 or -max int)
for each item in the sequence:
if item > m1 then
m2 = m1
m1 = item
これは、2つの要素よりも小さいシーケンスを考慮して取ることはありませんが、あなたは簡単にこのエッジケースを追加することができます。
2の代わりにKを使用する場合は、2つの変数の代わりにK要素のcollection(配列)を使用します。
これはO(n)です。
+0
実際には、 'k'(部分列内の要素の数)が大きければ、それははるかに高い次数になります。正確な順序は現在の最も小さい保存値を調べる方法に依存します。保存したリストに新しい値を追加します。これらは、現在保存されている最大値を格納するデータ構造に主に依存します。与えられたアルゴリズムはシンプルですが、大きな 'k'では最も速くはありません。 –
関連する問題
- 1. 最大合計で最大増加サブシーケンスを見つける
- 2. シーケンスから最大長のサブシーケンスを抽出する[PYTHON]
- 3. 与えられた数字のシーケンスの最大のサブシーケンスをリスト内に見つける
- 4. サブシーケンスのxor値の差が最小になるように配列を2つのサブシーケンスに分割します
- 5. シーケンス内の長さnのすべての連続したサブシーケンスを見つける
- 6. シーケンス内のサブシーケンスの可能な最大和を返すアルゴリズム
- 7. 大きな文字列の中で最適なサブシーケンスを見つけるにはどうすればよいですか?
- 8. 合計が指定された整数より大きい整数の最小セットを見つけよう
- 9. 最長のサブシーケンスが
- 10. 辞書内の文字列の中で最も長いサブシーケンスを見つける
- 11. 最大化されたウィンドウの位置を見つけるにはどうすればよいですか?
- 12. セージで指定されたセットのサブセットを見つけるにはどうすればよいですか?
- 13. 特定のインデックスで指定された列を合計するにはどうすればよいですか?
- 14. 3つのシーケンスの中で最も長い共通サブシーケンス
- 15. 最長のパリンドローム部分文字列を見つける(サブシーケンスではない)
- 16. どのようにCの色の最長シーケンスを見つけるには#
- 17. 文字列中で最長類似サブシーケンスを見つける
- 18. 動的プログラミング - 最大合計増加サブシーケンス
- 19. 私は最長の回文部分シーケンスを見つけたい最長の回文のサブシーケンスが、私はそれを実行すると、作業コンソールウィンドウされていない印刷するための私のプログラムは、このプログラムでは、入力
- 20. ループ内のオブジェクトの配列の合計値を見つけるにはどうすればよいですか?
- 21. 配列内の最大値のインデックスを見つけるにはどうすればよいですか?
- 22. どのようにして最大プロセッサキューの長さを見つけることができますか?
- 23. 最大ダウンロードサイズを指定するにはどうすればよいですか?
- 24. 最大の連続したサブシーケンスの合計の始まりと終わりを見つける
- 25. Ireportまたはジャスパーレポートの列の合計を見つけるにはどうすればよいですか?
- 26. クラシファイアが許可するトレーニングセットの最大サイズを見つけるにはどうすればよいですか?
- 27. PHP:文字列内の任意の長さのシーケンスをすべて見つけるにはどうすればよいですか?
- 28. どのようにアンドロイドで文字列内の指定されたテキストを見つけるには?
- 29. 列に入力された3つの値を見つけるにはどうすればよいですか?
- 30. node.jsの大きなオブジェクトで特定の値を見つけるにはどうすればよいですか?
配列内のK個の最大要素を見つけることとはどのように違いますか? – dasblinkenlight
シンプルなアルゴリズム(Lukによって既に与えられているような)、長いシーケンスの高速アルゴリズム、長いサブシーケンスの高速アルゴリズム、またはその他のアルゴリズムを使いたいですか?これまでのところどのような仕事をしていますか? [FAQ](http://stackoverflow.com/tour)と[How to Ask](http://stackoverflow.com/help/how-to-ask)を参照してください。 –
私は、この質問を完全にはっきりさせておらず、質問者に示された作業がないので、この質問をトピックとして閉じようとしています。 –