回答編集履歴
1
前半の区切りがわかりにくいので、修正にあわせて加筆
answer
CHANGED
@@ -6,18 +6,32 @@
|
|
6
6
|
インデックスを保存して返却する。
|
7
7
|
|
8
8
|
と、なっています。
|
9
|
+
|
9
10
|
int配列の初期値は0なので、0かインデックスが保存されます。
|
10
|
-
上記の例だと最初の2以外は全部、インデックスが保存され
|
11
|
+
上記の例だと最初の2以外は全部、インデックスが保存されるかつ、返却する配列は元のaと同じ大きさ。
|
11
12
|
|
13
|
+
というわけで、やりたいことを書いてあることが違うので、うまくいきません。
|
14
|
+
~~~~~
|
15
|
+
で、ここから
|
16
|
+
やりたいことを、そのまま書く方法についてです。
|
17
|
+
|
12
18
|
> a[] = {2, 3 , 6 , 5 , 6 , 4}
|
13
19
|
の場合、2と4を出したい
|
14
20
|
|
15
21
|
まずは頭で考えたことを、愚直にコードにすればよいです。
|
22
|
+
人は頭が良いので、複数のことを同時に処理できちゃうのですが、プログラミングは
|
23
|
+
ひとつひとつの手順をきちんと書く(プログラミングする)必要があります。
|
24
|
+
|
25
|
+
0. 配列aの要素の最大値を探して記録する
|
26
|
+
0. 記録した最大値が配列aの中に何個あるか記録する
|
27
|
+
0. 返却用の配列を作成して最大値のインデックスを記録する
|
28
|
+
|
16
29
|
maは、最大値を保存する変数と思われますので、上記の場合、6を保存します。
|
17
30
|
あとは、6が何回でるかをループで検索します。(2回)
|
18
|
-
|
31
|
+
最後に、要素数2の配列'mai'を作って、もう1回ループしてインデックスを格納します。
|
19
32
|
|
20
33
|
tkturbo さんの回答で十分だと思いますが、さらに愚直に。
|
34
|
+
効率性は、あとから気にすればよいですが、まずは頭で考えたことを、そのままコード化してみましょう。
|
21
35
|
|
22
36
|
``` java
|
23
37
|
static int[] maxIndex(int[] a){
|