回答編集履歴
2
文章の修正
answer
CHANGED
@@ -143,7 +143,7 @@
|
|
143
143
|
}
|
144
144
|
|
145
145
|
public static int[][] convertIndexesStr(String[] indexesStr) {
|
146
|
-
//
|
146
|
+
// 会社名とランクをIndexに置き換え、会社が複数ある場合まとめる
|
147
147
|
int[][] indexes = new int[indexesStr.length][2];
|
148
148
|
for (int i = 0; i < indexesStr.length; i++) {
|
149
149
|
String[] idxs = indexesStr[i].split(",");
|
1
文章の修正
answer
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
質問例の組み合わせ数が変わるパターンだとその都度似た処理をコピー
|
1
|
+
質問例の組み合わせ数が変わるパターンだとその都度似た処理をコピーしなければならず効率が悪いので、一覧を作る部分から作り直しました。
|
2
2
|
ただビット演算を使う方が楽なためint配列をString文字列に置き換えて処理しています。
|
3
3
|
外部からint配列で引数が渡されるとかいう場合、String文字列に置き換える処理を入れて下さい。
|
4
4
|
|
5
|
-
支配関係の除外
|
5
|
+
支配関係の除外は現在の処理の場合、
|
6
|
-
高ランクから順番に
|
6
|
+
高ランクから順番にしているため、必然的に下位ランクが後になるので、
|
7
|
-
新しく追加する物が既に一覧にある物の下位になるかどうかをチェックして
|
7
|
+
新しく追加する物が既に一覧にある物の下位になるかどうかをチェックして
|
8
|
+
一覧に加えない方式で処理しています。
|
8
9
|
|
9
10
|
```java
|
10
11
|
import java.util.ArrayList;
|