LeetCode学習ロードマップ  90問まとめ

# はじめに
今回は、LeetCodeやコーディング面接対策で頻出の約90問を、カテゴリー別に整理したロードマップとしてご紹介します。問題の解き方は一つではありませんが、ジャンルを分けて段階的に取り組むことで、効率よくアルゴリズム力を高められます。

	ポイント:
	•	「Easy → Medium → Hard」の順でスキルアップ。
	•	似た問題をまとめて復習する。
	•	カテゴリを意識して広く学習。

 https://leetcode.com/

以下、各カテゴリごとにリストアップしていきます。

# 1. 配列とリスト操作 (Array / List)
配列・リストの基礎操作はアルゴリズムの入り口。頻出テクニック（スライディングウィンドウ、2ポインター）に慣れましょう。
	1.	0001. Two Sum
	2.	0121. Best Time to Buy and Sell Stock
	3.	0283. Move Zeroes
	4.	0026. Remove Duplicates from Sorted Array
	5.	0053. Maximum Subarray
	6.	0189. Rotate Array
	7.	0217. Contains Duplicate
	8.	0136. Single Number
	9.	0169. Majority Element
	10.	0448. Find All Numbers Disappeared in an Array
	11.	0560. Subarray Sum Equals K
	12.	0713. Subarray Product Less Than K
	13.	0209. Minimum Size Subarray Sum
	14.	0238. Product of Array Except Self

# 2. 文字列操作 (String)
文字列処理はほぼすべての企業がコーディング面接で出すジャンル。パターン: アナグラム判定、文字列検索、数値変換、再帰生成など。
	15.	0242. Valid Anagram
	16.	0014. Longest Common Prefix
	17.	0028. Find the Index of the First Occurrence in a String
	18.	0038. Count and Say
	19.	0067. Add Binary
	20.	0013. Roman to Integer
	21.	0125. Valid Palindrome
	22.	0008. String to Integer (atoi)
	23.	0043. Multiply Strings
	24.	0385. Mini Parser
	25.	0394. Decode String

# 3. スタックとキュー (Stack / Queue)
スタックとキューはデータ構造の基本。モノトニックスタックなど「テクニカル」な手法も出てきます。
	26.	0020. Valid Parentheses
	27.	0155. Min Stack
	28.	0232. Implement Queue using Stacks
	29.	0739. Daily Temperatures
	30.	0496. Next Greater Element I
	31.	0225. Implement Stack using Queues
	32.	0844. Backspace String Compare
	33.	0735. Asteroid Collision
# 4. ハッシュテーブル (Hash Table)
検索・挿入が平均O(1)のハッシュテーブルを使いこなしましょう。重複判定、グルーピング、マッピングなどが典型。
	34.	0349. Intersection of Two Arrays
	35.	0387. First Unique Character in a String
	36.	0167. Two Sum II - Input Array Is Sorted
	37.	0049. Group Anagrams
	38.	0811. Subdomain Visit Count
	39.	0447. Number of Boomerangs
	40.	0383. Ransom Note
# 5. ソートと検索 (Sorting / Basic Searching)
最小限のソート・検索の基礎を確認。
配列マージ、基本検索などを押さえます。
	41.	0088. Merge Sorted Array
	42.	0167. Two Sum II - Input Array Is Sorted (再掲)

# 6. 二分探索 (Binary Search)
配列だけでなく、行列やローテーションされた配列の探索など応用が豊富。
	43.	0704. Binary Search
	44.	0153. Find Minimum in Rotated Sorted Array
	45.	0658. Find K Closest Elements
	46.	0240. Search a 2D Matrix II

# 7. ヒープ (Heap)
常に最小（または最大）を取り出す操作が多い。
K番目に大きい/小さい要素などで大活躍。
	47.	0703. Kth Largest Element in a Stream
	48.	0378. Kth Smallest Element in a Sorted Matrix
	49.	0373. Find K Pairs with Smallest Sums

# 8. ツリー (Tree)
二分木の基本操作やDFS・BFSを思い出しながら、再帰やレベルオーダーを学ぶ。
	50.	0104. Maximum Depth of Binary Tree
	51.	0226. Invert Binary Tree
	52.	0101. Symmetric Tree
	53.	0112. Path Sum
	54.	0100. Same Tree

# 9. リンクリスト (Linked List)
リストの基本操作と、ポインタ操作に慣れましょう。
	55.	0206. Reverse Linked List
	56.	0021. Merge Two Sorted Lists
	57.	0019. Remove Nth Node From End of List
	58.	0234. Palindrome Linked List
	59.	0141. Linked List Cycle

# 10. 動的計画法 (Dynamic Programming)
配列から2次元DPまで幅広い。最初はステップ数やサブ配列の和に慣れると良いです。
	60.	0070. Climbing Stairs
	61.	0198. House Robber
	62.	0121. Best Time to Buy and Sell Stock (再掲)
	63.	0053. Maximum Subarray (再掲, Kadane)
	64.	0746. Min Cost Climbing Stairs
	65.	0072. Edit Distance
	66.	1143. Longest Common Subsequence
	67.	0300. Longest Increasing Subsequence
	68.	0322. Coin Change
	69.	0416. Partition Equal Subset Sum
	70.	0132. Palindrome Partitioning II
	71.	0639. Decode Ways II
	72.	0309. Best Time to Buy and Sell Stock with Cooldown

# 11. グラフアルゴリズム (Graph)
DFS/BFSを理解し、サイクル判定・最短経路・トポロジカルソートなどを網羅。
	73.	0207. Course Schedule
	74.	0785. Is Graph Bipartite?
	75.	0994. Rotting Oranges
	76.	0133. Clone Graph
	77.	0399. Evaluate Division
	78.	1557. Minimum Number of Vertices to Reach All Nodes
	79.	1971. Find if Path Exists in Graph
	80.	0310. Minimum Height Trees
	81.	0261. Graph Valid Tree
	82.	1976. Number of Ways to Arrive at Destination

# 12. バックトラッキング (Backtracking)
すべての組合せ・順列を生成したり、DFSで全探索する問題。状態管理に慣れよう。
	83.	0090. Subsets II
	84.	0040. Combination Sum II
	85.	0046. Permutations
	86.	0079. Word Search
	87.	0051. N-Queens

# 13. 高度なデータ構造 (Advanced Data Structures)
セグメントツリーやTrieなど、より複雑なデータ構造を使って問題を高速に解決。
	88.	0208. Implement Trie (Prefix Tree)
	89.	0211. Add and Search Word - Data Structure Design
	90.	0239. Sliding Window Maximum
	91.	0307. Range Sum Query - Mutable
	92.	0128. Longest Consecutive Sequence

# まとめ
このリストを活用すれば、基本的なデータ構造とアルゴリズムの典型問題を総ざらいできます。実際に手を動かしてコードを書くことで、理解が定着しやすいです。スキルアップの近道は、
	1.	小さな例を紙に書いて実験
	2.	他人のコードやディスカッションでアプローチを吸収
	3.	定期的に復習する

という流れ。ぜひ挑戦してみてください！