
基本情報技術者試験基礎・応用
条件を読む・根拠を説明する
連続する増加区間を見つける
条件を整理し、答えを選んでから解き方を確認しましょう。
測定値のうち、直前より厳密に大きい値が連続する最長区間を探す。等しい値で区間は切れる。添字は1始まり。 A = [2, 4, 4, 5, 7, 1, 3] run ← 1 best ← 1 end ← 1 for i = 2 to 7 if A[i] > A[i−1] run ← run + 1 else run ← 1 endif if run > best best ← run end ← i endif endfor 終了時の(best, end)はどれか。
答え・解き方を読む
(3,5)
考える順序
- 1i=3の同値4でrunを1へ戻す
- 2i=4,5でrunが2,3となりbest=3,end=5
- 3i=6で切れ、最後はrun=2なので更新しない
選択肢ごとの理由
- 比較 · (3,7)
最後の区間は長さ2で最長値を更新しません。
- 比較 · (2,2)
最初の区間より長い4,5,7の区間があります。
- 正解 · (3,5)
i=3の同値4でrunを1へ戻す。i=4,5でrunが2,3となりbest=3,end=5。i=6で切れ、最後はrun=2なので更新しない。
- 比較 · (5,5)
同値と下降を越えて増加を数えてはいけません。