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

回答編集履歴

1

前半の区切りがわかりにくいので、修正にあわせて加筆

2018/02/22 03:04

投稿

momon-ga
momon-ga

スコア4828

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
- つぎに、要素数2の配列'mai'を作って、もう1回ループして要素保存します。
31
+ 最後に、要素数2の配列'mai'を作って、もう1回ループしてインデックス格納します。
19
32
 
20
33
  tkturbo さんの回答で十分だと思いますが、さらに愚直に。
34
+ 効率性は、あとから気にすればよいですが、まずは頭で考えたことを、そのままコード化してみましょう。
21
35
 
22
36
  ``` java
23
37
  static int[] maxIndex(int[] a){