teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

誤解を招く表現を変更

2020/12/26 23:46

投稿

actorbug
actorbug

スコア2502

answer CHANGED
@@ -2,8 +2,9 @@
2
2
  その戻り値のうち実際に採用されるのは、大きい値を返した方だけです。
3
3
  つまり、採用されない側の呼び出しで選ばれた要素は追加してはいけないということです。
4
4
 
5
+ しかし、今のコードだと、現在の要素については採用されたかを判定していますが、
5
- しかし、今のコードだと、採用されたかどうかかかわらず`@selected_items`にれてしまっているで、
6
+ 採用されない側のrecの再帰呼び出しの中ですでに`@selected_items`に追加されてしまったもについては
6
- 余計な要素まで結果として表示されてしまうことになります。
7
+ 削除されずにそのまま残るため、余計な要素まで結果として表示されてしまうことになります。
7
8
 
8
9
  採用されたかどうか知っているのは呼び出し元だけなので、入れたアイテムを戻り値として返して、
9
10
  呼び出し元で採用していない側を捨てるぐらいしか方法はないと思われます。