アルゴリズム ・ 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列目)

このチャプターの続きは受講生限定です

本文の残り、図解・実行できるコードブロック・演習はプラン加入後に読めます。

料金プランを見る