🎯
概念 #arai60 #アルゴリズム #LeetCode #面接対策 #Google 📚 arai60

arai60 概要・練習方法

新井康平氏が厳選したLeetCode60問。BigTech面接対策として一般社団法人ソフトウェアエンジニアリング協会が採用

arai60とは

新井康平(Kohei Arai)氏がLeetCodeの数千問から厳選した60問。「これら60問を30分以内にエラーなく実装できれば、コーディング面接対策は完了」 というベンチマークを提供する。

一般社団法人ソフトウェアエンジニアリング協会(SWE協会)がGoogleなどのBigTech就職対策教材として採用しており、Discordでの練習会・レビューセッションで使用されている。

練習方法(SWE協会推奨)

Step 1: 自力で解く

何も見ずに問題を解く。5〜10分考えてわからなければ答えを見る(粘りすぎない)。

Step 2: 洗練された解法を学ぶ

  • 他の実装者のコード(GitHub・LeetCode Discussion)
  • Pythonの標準ライブラリ公式ドキュメント(collections, heapq, bisect等)
  • より良い計算量の解法を理解する

Step 3: 反復練習

10分以内にエラーなく実装できるまで反復する。3回連続で書けるようになることが目標。

問題カテゴリ一覧

カテゴリ問題数ドキュメント
LinkedList(連結リスト)5問→ LinkedList
Stack(スタック)4問→ Stack
Heap / PriorityQueue(ヒープ)6問→ Heap
HashMap(ハッシュマップ)6問→ HashMap
Graph / BFS / DFS6問→ BFS/DFS
Tree / BT / BST(木構造)11問→ Tree
Sort(ソート)3問→ Sort
Dynamic Programming(DP)9問→ DP
Binary Search(二分探索)3問→ Binary Search
Recursion(再帰)4問→ Recursion
Sliding Window4問→ Sliding Window
Two Pointers(二ポインタ)5問→ Two Pointers
Greedy + Backtracking3問→ Greedy

よく使うPythonの標準ライブラリ

from collections import deque, defaultdict, Counter
import heapq
from bisect import bisect_left, bisect_right
ライブラリ用途計算量
collections.dequeBFS のキューO(1) append/popleft
collections.defaultdictグラフの隣接リスト、頻度カウントO(1) アクセス
collections.Counter文字列・配列の頻度カウントO(n) 構築
heapqヒープ(最小ヒープ)O(log n) push/pop
bisectソート済み配列への二分探索挿入O(log n)

面接での立ち回り方

  1. 問題を繰り返し言語化する — 「つまり〜〜をすればよい」と自分の言葉で確認
  2. 例を手で動かす — 小さな入力で期待する出力を確認してから実装
  3. 計算量を先に言う — 「時間O(n)、空間O(1)で解けます」と宣言してから実装
  4. エッジケースを明示する — 空配列・null・重複値などを事前に確認

出典: https://1kohei1.com/leetcode/