回答編集履歴
9
語単語
answer
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
}
|
26
26
|
}
|
27
27
|
```
|
28
|
-
```
|
28
|
+
```text
|
29
29
|
[1, 1, 1, 1, 1, 1]
|
30
30
|
[1, 1, 1, 1, 2]
|
31
31
|
[1, 1, 1, 3]
|
8
誤字
answer
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
}
|
26
26
|
}
|
27
27
|
```
|
28
|
-
```
|
28
|
+
```Plain text
|
29
29
|
[1, 1, 1, 1, 1, 1]
|
30
30
|
[1, 1, 1, 1, 2]
|
31
31
|
[1, 1, 1, 3]
|
7
if の条件を for に組み込み
answer
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
do {
|
18
18
|
//パターン生成
|
19
19
|
if(i > 0) buf[i-1] ++;
|
20
|
-
|
20
|
+
for(int j=--buf[i--]; j > 0; j--) buf[++i] = 1;
|
21
21
|
//既存チェック・表示
|
22
22
|
String s = Arrays.toString(Arrays.stream(buf, 0, i+1).sorted().toArray());
|
23
23
|
if(done.add(s)) System.out.println(s);
|
6
行数削減
answer
CHANGED
@@ -17,16 +17,10 @@
|
|
17
17
|
do {
|
18
18
|
//パターン生成
|
19
19
|
if(i > 0) buf[i-1] ++;
|
20
|
-
if(--buf[i] > 0) {
|
21
|
-
|
20
|
+
if(--buf[i--] > 0) for(int j=buf[i+1]; j > 0; j--) buf[++i] = 1;
|
22
|
-
}
|
23
|
-
i --;
|
24
21
|
//既存チェック・表示
|
25
22
|
String s = Arrays.toString(Arrays.stream(buf, 0, i+1).sorted().toArray());
|
26
|
-
if(!done.contains(s)) {
|
27
|
-
|
23
|
+
if(done.add(s)) System.out.println(s);
|
28
|
-
done.add(s);
|
29
|
-
}
|
30
24
|
} while(i > 0);
|
31
25
|
}
|
32
26
|
}
|
5
一部 stream 化
answer
CHANGED
@@ -22,9 +22,7 @@
|
|
22
22
|
}
|
23
23
|
i --;
|
24
24
|
//既存チェック・表示
|
25
|
-
int[] t = Arrays.copyOf(buf, i+1);
|
26
|
-
Arrays.sort(t);
|
27
|
-
String s = Arrays.toString(
|
25
|
+
String s = Arrays.toString(Arrays.stream(buf, 0, i+1).sorted().toArray());
|
28
26
|
if(!done.contains(s)) {
|
29
27
|
System.out.println(s);
|
30
28
|
done.add(s);
|
4
バグ
answer
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
do {
|
18
18
|
//パターン生成
|
19
19
|
if(i > 0) buf[i-1] ++;
|
20
|
-
if(--buf[i]
|
20
|
+
if(--buf[i] > 0) {
|
21
21
|
for(int j=buf[i]; j > 0; j--) buf[i++] = 1;
|
22
22
|
}
|
23
23
|
i --;
|
3
最適化?
answer
CHANGED
@@ -18,13 +18,9 @@
|
|
18
18
|
//パターン生成
|
19
19
|
if(i > 0) buf[i-1] ++;
|
20
20
|
if(--buf[i] == 0) {
|
21
|
-
i --;
|
22
|
-
} else {
|
23
|
-
for(int j=i;
|
21
|
+
for(int j=buf[i]; j > 0; j--) buf[i++] = 1;
|
24
|
-
buf[j] --;
|
25
|
-
buf[++i] ++;
|
26
|
-
}
|
27
22
|
}
|
23
|
+
i --;
|
28
24
|
//既存チェック・表示
|
29
25
|
int[] t = Arrays.copyOf(buf, i+1);
|
30
26
|
Arrays.sort(t);
|
2
実行結果追加
answer
CHANGED
@@ -36,4 +36,17 @@
|
|
36
36
|
} while(i > 0);
|
37
37
|
}
|
38
38
|
}
|
39
|
+
```
|
40
|
+
```plain text
|
41
|
+
[1, 1, 1, 1, 1, 1]
|
42
|
+
[1, 1, 1, 1, 2]
|
43
|
+
[1, 1, 1, 3]
|
44
|
+
[1, 1, 2, 2]
|
45
|
+
[1, 1, 4]
|
46
|
+
[1, 2, 3]
|
47
|
+
[1, 5]
|
48
|
+
[2, 2, 2]
|
49
|
+
[2, 4]
|
50
|
+
[3, 3]
|
51
|
+
[6]
|
39
52
|
```
|
1
やっぱり違うかもしれない文を削除
answer
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
要件を満たしていないので答えにはなりませんが、ヒントになるか(ならないか)ということで、動作するモノを出してみます。
|
2
2
|
ハノイの塔のように '1' をあちこちに移動させている感じです。
|
3
|
-
「試したこと」に書かれているのはこんな感じのことでしょうか。(重複は Set で弾いています。)
|
4
3
|
|
5
4
|
```java
|
6
5
|
import java.util.Arrays;
|