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