問題
選択肢
- 13
- 24
- 35
- 42
正解
2. 4
詳しい解説を見る解説を閉じる
解説
二重ループで各要素arr[i]について、自分より前の要素arr[0]〜arr[i−1]に同じ値がないかを調べ、初出の値だけをカウントする仕組みである。[3,1,4,1,5]をトレースすると、i=0の3は前に要素がなく初出でcount=1。i=1の1は3と不一致で初出、count=2。i=2の4も初出でcount=3。i=3の1はarr[1]=1と一致してisUniqueがfalseになり加算なし。i=4の5は初出でcount=4。よって戻り値は4である。5は重複の1を見落とした場合、3や2は重複を多く数えすぎた場合の誤りである。「自分より前の要素とだけ比較する」ことで同じ値の2回目以降を除外するのがポイントで、内側ループの範囲がi−1までである点を正確に読み取れるかが問われる。
一問一答
科目A 180問+科目B 60問