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

回答編集履歴

1

誤解を受けやすい表記を修正

2021/01/13 13:10

投稿

dodox86
dodox86

スコア9416

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  > 以下のプログラムのどこに原因があるのか、
2
2
 
3
- 原因ですが、`intersection`メソッドの以下の部分は、配列AとBの要素の並びが昇順(小さい順)であることに依存しています。
3
+ 原因ですが、`intersection`メソッドの以下の部分は、配列AとBの要素の並びが昇順(小さい順)であることに依存しています。
4
4
 
5
5
  ```Java
6
6
  // 読みやすくする為、整形済みです。
@@ -18,13 +18,14 @@
18
18
  } else {
19
19
  if (uniq.add(v)) {
20
20
  }
21
- ++d;++e;
21
+ ++d;
22
+ ++e;
22
23
  }
23
24
  }
24
25
 
25
26
  ```
26
27
  ですので、Aが`{1, 2, 4, 5, 9, 10}`、Bが`{0, 1, 2, 5, 6, 9, 11, 12}`のように昇順にソート済みあれば、正しく出力されています。
27
28
 
28
- ただ、`if (uniq.add(v)) {}`は意味がないコードですね。
29
+ ただ、`if (uniq.add(v)) {}`部分の`if`のブロック意味がないですね。
29
30
 
30
31
  並び順に依存しないようにするには、あらかじめソートするか、「Aの要素がBに含まれているかどうか」を判定していけばよいと思います。