アルゴリズム ・ Chapter 1
[配列]データを並べる、最初の構造
記事 ・ 冒頭を無料公開中
データ構造の教材へようこそ。最初のテーマは配列です。「もう知っている」と思うかもしれませんが、この教材での配列は扱い方が少し違います。コーディングテストで最も頻繁に触るデータ構造として、操作の一つひとつを「速いのか、遅いのか」まで含めて棚卸しします。ここで固めた配列の操作が、この先の全テーマの土台になります。
添字——0から数える位置番号
配列の各要素には、先頭から0, 1, 2...と番号が振られています。この番号を添字(インデックス)と呼びます。
const scores = [80, 65, 92, 70]; console.log(scores[0]); // 80(先頭は0番) console.log(scores[2]); // 92
「1番目」が [0] ——人間の数え方と1つズレる点に注意してください。末尾の要素には2つの書き方があります。scoresscores.length - 1と、scores.at(-1)(後ろから1番目)です。
▶ 実行してみよう
at() は簡潔ですが、length - 1 の形も実際のコードでは広く使われています。両方読めるようにしてください。
添字によるアクセスは、配列がどれだけ長くても一定時間で終わります。位置が分かっているので、直接その場所を読むだけだからです。このような「データ量によらず一定時間」の操作を O(1) と表記します(この記法は後の章で正式に扱います。今は「O(1) = 一瞬で終わる」とだけ覚えてください)。
型——TypeScriptの配列は「何を入れるか」を宣言する
const scores: number[] = [80, 65, 92, 70]; const names: string[] = ["太郎", "花子"];
number[] と宣言した配列に文字列を入れようとすると、型エラーになります。数値と文字列を混在させたい場合は (number | string)[] と書けますが、コーディングテストで混在配列が必要になることはまれです。1つの配列には1つの型、が基本です。
2次元配列——配列の中に配列
配列の要素には、配列も入れられます。
const grid: number[][] = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ]; console.log(grid[1][2]); // 6(1行目の、2列目)
このチャプターの続きは受講生限定です
本文の残り、図解・実行できるコードブロック・演習はプラン加入後に読めます。