リントコード
現在 (2016 年 8 月 22 日) までに、LintCode Online Judge には289
の問題があります。最近トラブルが増えています。全289
問題を分類すると次のとおりです。その他の問題と解決策については、私の LeetCode-Solutions リポジトリをご覧ください。完全な概要とより良い解決策については、引き続き更新していきます。続報をお待ちください。
アルゴリズム
- ビット操作
- 配列
- 弦
- リンクされたリスト
- 数学
- 木
- スタック
- 列
- ヒープ
- ハッシュテーブル
- データ構造
- 選別
- 再帰
- 二分探索
- 幅優先検索
- 深さ優先検索
- 後戻り
- 二分探索木
- 動的プログラミング
- よく深い
- OOデザイン
- システム設計
ビット操作
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
1 | A + B 問題 | C++ | ○(1) | ○(1) | 中くらい | | |
82 | 単一の数字 | C++ | の上) | ○(1) | 簡単 | リートコード | |
83 | シングルナンバーⅡ | C++ | の上) | ○(1) | 簡単 | リートコード | |
84 | シングルナンバーIII | C++ | の上) | ○(1) | 中くらい | CTCI | |
142 | O(1) 2 の累乗を確認する | C++ | ○(1) | ○(1) | 簡単 | | |
179 | アップデートビット | C++ | ○(1) | ○(1) | 中くらい | CTCI | |
181 | フリップビット | C++ | ○(1) | ○(1) | 簡単 | CTCI | |
196 | 足りない番号を探す | C++ | の上) | ○(1) | 中くらい | | |
365 | バイナリで 1 を数える | C++ | ○(1) | ○(1) | 簡単 | CTCI | |
配列
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
6 | ソートされた配列を結合する | C++ | O(m + n) | ○(1) | 簡単 | リートコード | 2つのポインター |
8 | 文字列を回転する | C++ | の上) | ○(1) | 簡単 | リートコード | |
9 | フィズバズ | C++ | の上) | ○(1) | 簡単 | | |
30 | 挿入間隔 | C++ | の上) | ○(1) | 簡単 | リートコード、EPI | |
31 | パーティションアレイ | C++ | の上) | ○(1) | 中くらい | | 2つのポインター |
32 | 最小ウィンドウ部分文字列 | C++ | の上) | ○(1) | 中くらい | リートコード | |
38 | 2D マトリックスの検索 II | C++ | O(m + n) | ○(1) | 中くらい | EPI | |
39 | 回転ソートされた配列を回復する | C++ | の上) | ○(1) | 簡単 | | |
46 | 多数決番号 | C++ | の上) | ○(1) | 簡単 | リートコード | |
47 | 多数決 II | C++ | の上) | ○(1) | 中くらい | EPI | |
48 | 多数決Ⅲ | C++ | の上) | わかりました) | 中くらい | EPI | |
49 | 文字を大文字と小文字で並べ替える | C++ | の上) | ○(1) | 中くらい | | 2つのポインター |
50 | 配列の積自体を除外する | C++ | の上) | ○(1) | 簡単 | | |
51 | 前の順列 | C++ | の上) | ○(1) | 中くらい | | |
52 | 次の順列 | C++ | の上) | ○(1) | 中くらい | リートコード | |
57 | 3 合計 | C++ | O(n^2) | ○(1) | 中くらい | リートコード | 2 つのポインター、並べ替え |
58 | 4 合計 | C++ | O(n^3) | ○(1) | 中くらい | リートコード | ハッシュ |
59 | 3 最も近い合計 | C++ | O(n^2) | ○(1) | 中くらい | リートコード | 2 つのポインター、並べ替え |
64 | ソートされた配列 II をマージ | C++ | O(m + n) | ○(1) | 簡単 | リートコード | 2つのポインター |
100 | ソートされた配列から重複を削除 | C++ | の上) | ○(1) | 簡単 | リートコード | 2つのポインター |
101 | ソートされた配列 II から重複を削除 | C++ | の上) | ○(1) | 簡単 | リートコード | 2つのポインター |
133 | 最長の単語 | C++ | の上) | の上) | 簡単 | | |
144 | 正の数値と負の数値をインターリーブする | C++ | の上) | ○(1) | 中くらい | | 2つのポインター |
161 | 画像を回転する | C++ | O(n^2) | ○(1) | 中くらい | リートコード | |
162 | 行列のゼロを設定する | C++ | O(m * n) | ○(1) | 中くらい | リートコード | |
172 | 要素の削除 | C++ | の上) | ○(1) | 簡単 | リートコード | 2つのポインター |
185 | マトリックス ジグザグ トラバーサル | C++ | O(m * n) | ○(1) | 簡単 | | |
189 | 最初の欠落陽性 | C++ | の上) | ○(1) | 簡単 | リートコード、EPI | ハッシュ |
190 | 次の順列 II | C++ | の上) | ○(1) | 中くらい | リートコード | |
200 | 最長の回文部分文字列 | C++ | の上) | の上) | 中くらい | リートコード | Manacher's Algorithm |
363 | 雨水を溜める | C++ | の上) | ○(1) | 中くらい | リートコード | 2 つのポインタ、トリッキー |
373 | 配列を奇数と偶数で分割する | C++ | の上) | ○(1) | 簡単 | | 2 つのポインター |
374 | スパイラルマトリックス | C++ | O(m * n) | ○(1) | 中くらい | リートコード | |
381 | スパイラル マトリックス II | C++ | O(n^2) | ○(1) | 中くらい | リートコード | |
382 | 三角形の数 | C++ | O(n^2) | ○(1) | 中くらい | | 2つのポインター |
383 | ほとんどの水が入った容器 | C++ | の上) | ○(1) | 中くらい | リートコード、EPI | 2つのポインター |
388 | 順列シーケンス | C++ | O(n^2) | の上) | 中くらい | リートコード | |
389 | 有効な数独 | C++ | O(9^2) | お(9) | 簡単 | リートコード | |
404 | サブアレイサム II | C++ | O(nlogn) | の上) | 難しい | | 2 つのポインタ、二分探索 |
405 | 部分行列の合計 | C++ | O(m * n^2) | オ(メートル) | 難しい | | ハッシュ |
406 | 最小サイズのサブ配列の合計 | C++ | の上) | ○(1) | 中くらい | リートコード | 2 つのポインタ、二分探索 |
539 | ゼロを移動する | C++ | の上) | ○(1) | 簡単 | リートコード | 2 つのポインター |
弦
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
13 | strStr | C++ | O(n + k) | わかりました) | 簡単 | リートコード | KMP Algorithm |
53 | 文字列内の単語を反転する | C++ | の上) | ○(1) | 簡単 | リートコード、EPI | |
54 | 文字列から整数へ(atoi) | C++ | の上) | ○(1) | 難しい | リートコード | |
55 | 文字列の比較 | C++ | の上) | O(c) | 簡単 | | |
78 | 最長の共通プレフィックス | C++ | の上) | ○(1) | 中くらい | | |
157 | ユニークなキャラクター | C++ | の上) | ○(1) | 簡単 | CTCI | |
158 | 2 つの文字列はアナグラムです | C++ | の上) | ○(1) | 簡単 | | |
171 | アナグラム | C++ | O(n * klogk) | オ(メートル) | 簡単 | リートコード、EPI | |
212 | スペースの置き換え | C++ | の上) | ○(1) | 簡単 | | |
407 | プラスワン | C++ | の上) | ○(1) | 簡単 | リートコード | |
408 | バイナリの追加 | C++ | の上) | ○(1) | 簡単 | リートコード | |
415 | 有効な回文 | C++ | の上) | ○(1) | 簡単 | リートコード | |
417 | 有効な番号 | C++ | の上) | ○(1) | 難しい | リートコード | オートマトン |
420 | 数えて言う | C++ | O(n * 2^n) | O(2^n) | 簡単 | リートコード | |
422 | 最後の単語の長さ | C++ | の上) | ○(1) | 簡単 | リートコード | |
524 | 左パッド | C++ | O(p + n) | ○(1) | 簡単 | リートコード | |
リンクされたリスト
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
16 | 2 つのソートされたリストを結合する | C++ | の上) | ○(1) | 簡単 | リートコード、EPI | |
35 | 逆方向リンクリスト | C++ | の上) | ○(1) | 簡単 | リートコード、EPI | |
36 | 逆リンクリスト II | C++ | の上) | ○(1) | 中くらい | リートコード、EPI | |
96 | パーティションリスト | C++ | の上) | ○(1) | 簡単 | リートコード | |
98 | リストのソート | C++ | O(nlogn) | O(ログン) | 中くらい | リートコード、EPI | |
99 | リストの並べ替え | C++ | の上) | ○(1) | 中くらい | リートコード | |
102 | リンクリストサイクル | C++ | の上) | ○(1) | 中くらい | リートコード | |
103 | リンクリストサイクル II | C++ | の上) | ○(1) | 難しい | リートコード | |
104 | k 個のソートされたリストを結合する | C++ | O(n * logk) | ○(1) | 中くらい | リートコード | 積み上げ、分割し、征服する |
105 | ランダムなポインタを使用してリストをコピー | C++ | の上) | ○(1) | 中くらい | リートコード | |
106 | ソートされたリストを二分探索ツリーに変換 | C++ | の上) | O(ログン) | 中くらい | リートコード、EPI | |
112 | ソートされたリストから重複を削除 | C++ | の上) | ○(1) | 簡単 | リートコード、EPI | |
113 | ソート済みリストから重複を削除 II | C++ | の上) | ○(1) | 中くらい | リートコード、EPI | |
166 | リストの最後から N 番目のノード | C++ | の上) | ○(1) | 簡単 | リートコード | |
167 | 2 つのリストの合計 | C++ | の上) | ○(1) | 簡単 | リートコード | |
170 | リストの回転 | C++ | の上) | ○(1) | 中くらい | リートコード | |
173 | 挿入ソートリスト | C++ | O(n^2) | ○(1) | 簡単 | リートコード | |
174 | リストの末尾から N 番目のノードを削除 | C++ | の上) | ○(1) | 簡単 | リートコード | |
223 | 回文リンクリスト | C++ | の上) | ○(1) | 中くらい | リートコード | |
372 | 単一リンクリストの途中にあるノードを削除 | C++ | ○(1) | ○(1) | 簡単 | CTCI | |
380 | 2 つのリンクされたリストの交差 | C++ | O(m + n) | ○(1) | 簡単 | リートコード | |
450 | k-グループ内のノードを反転する | C++ | の上) | ○(1) | 難しい | リートコード | |
451 | ノードをペアで交換する | C++ | の上) | ○(1) | 簡単 | リートコード | |
452 | リンクされたリスト要素を削除する | C++ | の上) | ○(1) | ナイーブ | リートコード | |
511 | リンクされたリスト内の 2 つのノードを交換する | C++ | の上) | ○(1) | 中くらい | | |
木
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
7 | バイナリツリーのシリアル化 | C++ | の上) | おお) | 中くらい | | |
85 | 二分探索木にノードを挿入 | C++ | おお) | ○(1) | 簡単 | | |
88 | 最下位共通祖先 | C++ | の上) | おお) | 中くらい | EPI | |
175 | 二分木を反転 | C++ | の上) | おお) | 簡単 | リートコード | |
442 | トライの実装 | C++ | の上) | ○(1) | 中くらい | リートコード | トライ |
スタック
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
12 | 最小スタック | C++ | の上) | ○(1) | 中くらい | リートコード、EPI | |
40 | 2つのスタックによるキューの実装 | C++ | O(1)、償却済み | の上) | 中くらい | EPI | |
66 | バイナリ ツリーのプレオーダー トラバーサル | C++ | の上) | ○(1) | 簡単 | リートコード、EPI | Morris Traversal |
67 | バイナリ ツリーの順序トラバーサル | C++ | の上) | ○(1) | 簡単 | リートコード、EPI | Morris Traversal |
68 | バイナリ ツリー事後トラバーサル | C++ | の上) | ○(1) | 簡単 | リートコード、EPI | Morris Traversal |
122 | ヒストグラムの最大の長方形 | C++ | の上) | の上) | 難しい | リートコード、EPI | 昇順スタック |
126 | マックスツリー | C++ | の上) | の上) | 難しい | | 降順スタック |
367 | 式ツリーのビルド | C++ | の上) | の上) | 難しい | | |
368 | 式の評価 | C++ | の上) | の上) | 難しい | | |
369 | 式をポーランド語表記に変換する | C++ | の上) | の上) | 難しい | | |
370 | 式を逆ポーランド記法に変換する | C++ | の上) | の上) | 難しい | | |
421 | パスを単純化する | C++ | の上) | の上) | 中くらい | リートコード | |
423 | 有効な括弧 | C++ | の上) | の上) | 簡単 | リートコード | |
424 | 逆ポーランド記法の評価 | C++ | の上) | の上) | 中くらい | リートコード | |
473 | 単語の追加と検索 | C++ | O(分(n, h)) | O(分(n, h) | 中くらい | リートコード | トライ |
510 | 最大長方形 | C++ | O(m * n) | の上) | 難しい | リートコード | 昇順スタック |
528 | ネストされたリスト反復子を平坦化する | C++ | の上) | おお) | 中くらい | リートコード | |
列
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
362 | スライディング ウィンドウの最大値 | C++ | の上) | わかりました) | 難しい | EPI | デク、トリッキー |
ヒープ
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
4 | アグリーナンバーⅡ | C++ | の上) | ○(1) | 中くらい | CTCI | BST、ヒープ |
81 | データストリーム中央値 | C++ | O(nlogn) | の上) | 難しい | EPI | BST、ヒープ |
130 | ヒーピファイ | C++ | の上) | ○(1) | 中くらい | | |
364 | 雨水をためるⅡ | C++ | O(m * n * (logm + logn)) | O(m * n) | 難しい | | BFS、ヒープ、トリッキー |
518 | 超醜い数字 | C++ | O(n * k) | O(n + k) | 中くらい | リートコード | BST、ヒープ |
ハッシュテーブル
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
56 | 2 合計 | C++ | の上) | の上) | 中くらい | リートコード | |
124 | 最長連続シーケンス | C++ | の上) | の上) | 中くらい | リートコード、EPI | |
128 | ハッシュ関数 | C++ | の上) | ○(1) | 簡単 | | |
129 | 焼き直し | C++ | の上) | の上) | 中くらい | | |
138 | 部分配列の合計 | C++ | の上) | の上) | 簡単 | | |
186 | ライン上の最大ポイント | C++ | O(n^2) | の上) | 中くらい | リートコード | |
211 | 文字列の置換 | C++ | の上) | ○(1) | 簡単 | | |
384 | 繰り返し文字を含まない最長の部分文字列 | C++ | の上) | ○(1) | 中くらい | リートコード、EPI | |
386 | 最大 K 個の異なる文字を含む最長の部分文字列 | C++ | の上) | の上) | 中くらい | | |
432 | 有向グラフ内の弱い連結成分を見つける | C++ | O(nlogn) | の上) | 中くらい | | ユニオン検索 |
434 | 島の数 II | C++ | わかりました) | わかりました) | 難しい | | ユニオン検索 |
488 | ハッピーナンバー | C++ | わかりました) | わかりました) | 簡単 | リートコード | |
547 | 2 つの配列の交差 | C++ | O(m + n) | O(分(m, n)) | 簡単 | EPI、リートコード | 2 つのポインタ、二分探索 |
548 | 2 つの配列の交差 II | C++ | O(m + n) | O(分(m, n)) | 簡単 | EPI、リートコード | 2 つのポインタ、二分探索 |
データ構造
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
134 | LRUキャッシュ | C++ | ○(1) | わかりました) | 難しい | リートコード、EPI | リスト、ハッシュ |
数学
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
2 | 末尾のゼロ | C++ | ○(1) | ○(1) | 簡単 | リートコード | |
3 | 桁数 | C++ | ○(1) | ○(1) | 中くらい | CTCI | |
114 | ユニークなパス | C++ | O(分(m, n)) | ○(1) | 簡単 | リートコード、CTCI | DP、数学 |
163 | ユニークな二分探索ツリー | C++ | の上) | ○(1) | 中くらい | CTCI | DP、数学、 Catalan Number |
180 | バイナリ表現 | C++ | ○(1) | ○(1) | 難しい | CTCI | |
197 | 順列インデックス | C++ | O(n^2) | ○(1) | 簡単 | | |
198 | 順列インデックス II | C++ | O(n^2) | の上) | 中くらい | | |
394 | 並んだコイン | C++ | ○(1) | ○(1) | 簡単 | | |
411 | グレーコード | C++ | O(2^n) | ○(1) | 中くらい | リートコード | |
413 | 逆整数 | C++ | ○(1) | ○(1) | 中くらい | リートコード | |
414 | 2 つの整数を除算する | C++ | ○(1) | ○(1) | 中くらい | リートコード | |
418 | 整数からローマ字へ | C++ | の上) | ○(1) | 中くらい | リートコード | |
419 | ローマ字から整数へ | C++ | の上) | ○(1) | 中くらい | リートコード | |
428 | Pow(x, n) | C++ | ○(1) | ○(1) | 中くらい | リートコード | |
445 | コサイン類似度 | C++ Python | の上) | ○(1) | 簡単 | | |
517 | 醜い数字 | C++ | ○(1) | ○(1) | 簡単 | CTCI、リートコード | |
選別
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
5 | K 番目に大きい要素 | C++ | O(n) ~ O(n^2) | ○(1) | 中くらい | EPI | 2 つのポインタ、クイック ソート |
80 | 中央値 | C++ | の上) | ○(1) | 簡単 | EPI | |
139 | 最も近いサブアレイの合計 | C++ | O(nlogn) | の上) | 中くらい | | 選別 |
143 | カラーソート II | C++ | の上) | ○(1) | 中くらい | | |
148 | 色の並べ替え | C++ | の上) | ○(1) | 中くらい | リートコード | |
156 | マージ間隔 | C++ | O(nlogn) | ○(1) | 簡単 | リートコード、EPI | |
184 | 最大数 | C++ | O(nlogn) | ○(1) | 中くらい | リートコード | |
366 | フィボナッチ | C++ | の上) | ○(1) | 簡単 | | |
379 | 最小数を構築するために配列を並べ替えます | C++ | O(nlogn) | ○(1) | 中くらい | リートコード | |
387 | 最小の違い | C++ | O(max(m, n) * log(min(m, n))) | ○(1) | 中くらい | | 2 つのポインタ、二分探索 |
399 | ナットとボルトの問題 | C++ | O(nlogn) | O(ログン) | 中くらい | | クイックソート |
400 | 最大ギャップ | C++ Python | の上) | の上) | 難しい | リートコード | バケットソート |
463 | 整数のソート | C++ | O(n^2) | ○(1) | 簡単 | | 挿入ソート、選択ソート、バブルソート |
464 | 整数のソート II | C++ | O(nlogn) | の上) | 簡単 | | マージソート、ヒープソート、クイックソート |
507 | Wiggle ソート II | C++ | 平均O(n) | ○(1) | 中くらい | リートコード | トライパーティション |
508 | Wiggle 並べ替え | C++ | の上) | ○(1) | 中くらい | リートコード | |
再帰
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
22 | リストのフラット化 | C++ | の上) | おお) | 簡単 | | |
72 | インオーダーおよびポストオーダートラバーサルからバイナリツリーを構築する | C++ | の上) | の上) | 中くらい | リートコード、EPI | |
73 | 事前順序および順序トラバーサルからバイナリ ツリーを構築する | C++ | の上) | の上) | 中くらい | リートコード、EPI | |
93 | バランスの取れた二分木 | C++ | の上) | おお) | 簡単 | リートコード | |
94 | バイナリ ツリーの最大パス合計 | C++ | の上) | おお) | 中くらい | リートコード | |
95 | 二分探索ツリーの検証 | C++ | の上) | おお) | 中くらい | リートコード | |
97 | 二分木の最大深さ | C++ | の上) | おお) | 簡単 | リートコード | |
131 | 建物概要 | C++ Python | O(nlogn) | の上) | 難しい | EPI | ソート、BST |
140 | 高速パワー | C++ | O(ログン) | ○(1) | 中くらい | | |
155 | 二分木の最小深さ | C++ | の上) | おお) | 簡単 | リートコード | |
164 | ユニークな二分探索木 II | C++ | O(n * 4^n / n^(3/2)) | の上) | 中くらい | リートコード | |
177 | ソートされた配列を最小の高さの二分探索ツリーに変換 | C++ | の上) | O(ログン) | 簡単 | リートコード | |
201 | セグメントツリーの構築 | C++ | の上) | おお) | 中くらい | | セグメントツリー、BST |
202 | セグメントツリークエリ | C++ | おお) | おお) | 中くらい | | セグメントツリー、BST |
203 | セグメントツリーの変更 | C++ | おお) | おお) | 中くらい | | セグメントツリー、BST |
205 | 間隔の最小数 | C++ | ビルドツリー: O(n) 、クエリ: (h) | おお) | 難しい | | セグメントツリー、BST |
206 | インターバル合計 | C++ | ビルドツリー: O(n) 、クエリ: O(logn) | の上) | 難しい | | セグメントツリー、BIT |
207 | インターバルサムⅡ | C++ | ビルドツリー: O(n) 、クエリ: O(logn) 、変更: O(logn) | の上) | 難しい | | セグメントツリー、BIT |
245 | サブツリー | C++ | O(m * n) | ○(1) | 簡単 | | Morris Traversal |
247 | セグメントツリークエリ II | C++ | おお) | おお) | 難しい | | セグメントツリー、BST |
248 | 小さい数の数 | C++ | ビルドツリー: O(n) 、クエリ: O(logn) | おお) | 中くらい | | セグメントツリー、BST |
371 | 再帰による数値の出力 | C++ | の上) | の上) | 中くらい | | |
375 | バイナリ ツリーのクローンを作成する | C++ | の上) | おお) | 簡単 | | |
378 | 二分探索木を二重リンクリストに変換 | C++ | の上) | おお) | 中くらい | | |
439 | セグメントツリービルド II | C++ | の上) | おお) | 中くらい | | セグメントツリー、BST |
453 | バイナリ ツリーをリンク リストに平坦化する | C++ | の上) | おお) | 簡単 | リートコード | |
469 | 同一のバイナリ ツリー | C++ | の上) | おお) | 簡単 | | |
532 | リバースペア | C++ | O(nlogn) | の上) | 中くらい | それ自体の前の小さい数のカウントのバリアント | ビット、マージソート |
535 | ハウス強盗Ⅲ | C++ | の上) | おお) | 中くらい | リートコード | |
二分探索
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
14 | ターゲットの最初の位置 | C++ | O(ログン) | ○(1) | 簡単 | | |
28 | 2D マトリックスの検索 | C++ | O(logm + logn) | ○(1) | 簡単 | リートコード | |
60 | 挿入位置の検索 | C++ | O(ログン) | ○(1) | 簡単 | リートコード | |
61 | 範囲を検索する | C++ | O(ログン) | ○(1) | 中くらい | リートコード | |
62 | 回転ソート配列での検索 | C++ | O(ログン) | ○(1) | 中くらい | リートコード | |
63 | 回転ソート配列 II での検索 | C++ | O(ログン) | ○(1) | 中くらい | リートコード | |
65 | 2 つのソートされた配列の中央値 | C++ | O(log(min(m, n))) | ○(1) | 難しい | リートコード、EPI | トリッキー |
74 | 最初の不良バージョン | C++ | O(ログン) | ○(1) | 中くらい | | |
75 | ピーク要素の検索 | C++ | O(ログン) | ○(1) | 中くらい | リートコード | |
76 | 最長の増加サブシーケンス | C++ | O(nlogn) | の上) | 中くらい | CTCI | |
141 | 平方(x) | C++ | O(ログン) | ○(1) | 簡単 | リートコード | |
159 | 回転ソートされた配列の最小値を見つける | C++ | O(ログン) | ○(1) | 中くらい | リートコード | |
160 | 回転ソート配列 II の最小値を求める | C++ | O(ログン) | ○(1) | 中くらい | リートコード | |
183 | 木材のカット | C++ | O(nlogL) | ○(1) | 中くらい | | |
390 | ピーク要素の検索 II | C++ Java Python | O(m + n) | ○(1) | 難しい | | |
437 | コピーブック | C++ | O(nlogp) | ○(1) | 難しい | UVa 714 | |
幅優先検索
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
69 | バイナリ ツリー レベルの順序トラバーサル | C++ | の上) | の上) | 中くらい | リートコード | BFS |
70 | バイナリ ツリー レベルの順序トラバーサル II | C++ | の上) | の上) | 中くらい | リートコード | BFS |
71 | バイナリ ツリー ジグザグ レベル順序トラバーサル | C++ | の上) | の上) | 中くらい | リートコード | BFS |
120 | ワードラダー | C++ | O(n * d) | O(d) | 中くらい | リートコード | BFS |
121 | ワードラダーⅡ | C++ | O(n * d) | O(d) | 難しい | リートコード | BFS、バックトレース |
127 | トポロジカルソート | C++ | O(|V|+|E|) | O(|E|) | 中くらい | | DFS、BFS |
137 | クローングラフ | C++ | O(|V|+|E|) | O(|V|) | 中くらい | | BFS |
176 | グラフ内の 2 つのノード間のルート | C++ | の上) | の上) | 中くらい | | DFS、BFS |
178 | グラフ有効ツリー | C++ | O(|V| + |E|) | O(|V| + |E|) | 中くらい | リートコード | |
431 | 無向グラフで連結成分を見つける | C++ | の上) | の上) | 中くらい | | BFS |
477 | 囲まれた地域 | C++ | O(m * n) | O(m + n) | 中くらい | リートコード | |
深さ優先検索
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
90 | KサムⅡ | C++ | O(k * C(n, k)) | わかりました) | 中くらい | | |
376 | バイナリ ツリー パスの合計 | C++ | の上) | おお) | 簡単 | リートコード | |
433 | 島の数 | C++ | O(m * n) | O(m * n) | 簡単 | リートコード | DFS |
480 | バイナリ ツリー パス | C++ | O(n * h) | おお) | 簡単 | リートコード | |
後戻り
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
15 | 順列 | C++ | O(n * n!) | の上) | 中くらい | リートコード、EPI | |
16 | 順列 II | C++ | O(n * n!) | の上) | 中くらい | リートコード、EPI | |
17 | サブセット | C++ | O(n * 2^n) | ○(1) | 中くらい | リートコード | |
18 | サブセット II | C++ | O(n * 2^n) | ○(1) | 中くらい | リートコード | |
33 | N-クイーンズ | C++ | O(n * n!) | の上) | 中くらい | リートコード、EPI | |
34 | N-クイーンズ II | C++ | O(n * n!) | の上) | 中くらい | リートコード、EPI | |
123 | 単語検索 | C++ | O(m * n * l) | O(l) | 中くらい | リートコード | |
132 | 単語検索Ⅱ | C++ | O(m * n * l) | O(l) | 難しい | | トライ、DFS |
135 | 組み合わせ合計 | C++ | O(k * n^k) | わかりました) | 中くらい | リートコード | DFS |
136 | 回文パーティショニング | C++ | O(2^n) | の上) | 簡単 | リートコード、EPI | |
152 | 組み合わせ | C++ | O(k * n^k) | わかりました) | 中くらい | リートコード、EPI | |
153 | 組み合わせ和Ⅱ | C++ | O(k * C(n, k)) | わかりました) | 中くらい | リートコード | DFS |
425 | 電話番号の文字の組み合わせ | C++ | O(n * 4^n) | の上) | 中くらい | リートコード | |
426 | IPアドレスを復元する | C++ | ○(1) | ○(1) | 中くらい | リートコード | |
427 | 括弧を生成する | C++ | O(4^n / n^(3/2)) | の上) | 中くらい | リートコード | |
二分探索木
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
11 | 二分探索木の検索範囲 | C++ | の上) | おお) | 中くらい | EPI | |
86 | 二分探索ツリー反復子 | C++ | ○(1) | おお) | 難しい | リートコード | |
87 | 二分探索ツリー内のノードを削除する | C++ | おお) | おお) | 難しい | | |
249 | それより前の小さい数値の数 | C++ | O(nlogn) | の上) | 難しい | | BST、BIT、分割統治、マージソート |
360 | スライディング ウィンドウの中央値 | C++ | O(nlogw) | お(わ) | 難しい | | BST、トリッキー |
391 | 空を飛ぶ飛行機の数 | C++ | O(nlogn) | の上) | 簡単 | | BST、ヒープ |
401 | ソートされた行列の K 番目に小さい数 | C++ | O(klog(min(m, n, k))) | O(min(m, n, k)) | 中くらい | | BST、ヒープ |
動的プログラミング
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
20 | サイコロの合計 | C++ | O(n^2) | の上) | 難しい | | |
29 | インターリーブ文字列 | C++ | O(m * n) | O(分(m, n)) | 中くらい | EPI | |
43 | 最大サブアレイ III | C++ | O(k * n) | O(k * n) | 難しい | | |
77 | 最長共通部分列 | C++ | O(m * n) | O(分(m, n)) | 中くらい | | |
79 | 最長の共通部分文字列 | C++ | O(m * n) | O(分(m, n)) | 中くらい | | |
89 | Kサム | C++ | O(k * n * t) | O(n * t) | 難しい | | |
91 | 最小調整コスト | C++ | O(k * n * t) | わかりました) | 中くらい | | |
92 | バックパック | C++ | O(m * n) | オ(メートル) | 簡単 | | |
107 | ワードブレイク | C++ | O(n * l^2) | の上) | 中くらい | リートコード、EPI | |
108 | 回文分割 II | C++ | O(n^2) | の上) | 中くらい | リートコード、EPI | |
109 | 三角形 | C++ | の上) | の上) | 簡単 | リートコード、EPI | |
110 | 最小パス合計 | C++ | O(m * n) | O(分(m, n)) | 簡単 | リートコード、EPI | |
111 | 階段を登る | C++ | O(ログン) | ○(1) | 簡単 | リートコード | |
115 | ユニークなパス II | C++ | O(m * n) | O(分(m, n)) | 簡単 | リートコード、CTCI | DP、数学 |
118 | 異なるサブシーケンス | C++ | O(m * n) | オ(メートル) | 中くらい | リートコード | DP |
119 | 距離の編集 | C++ | O(m * n) | O(分(m, n)) | 中くらい | リートコード、CTCI | DP |
125 | バックパックⅡ | C++ | O(m * n) | オ(メートル) | 中くらい | | |
149 | 株を売買するのに最適な時期 | C++ | の上) | ○(1) | 中くらい | リートコード、EPI | |
150 | 株式を売買するのに最適な時期 II | C++ | の上) | ○(1) | 中くらい | リートコード、EPI | |
151 | 株式を売買するのに最適な時期 III | C++ | の上) | ○(1) | 中くらい | リートコード、EPI | |
154 | 正規表現のマッチング | C++ | O(m * n) | オ(メートル) | 難しい | リートコード | DP、再帰 |
168 | 破裂風船 | C++ | O(n^3) | O(n^2) | 中くらい | リートコード | |
191 | 最大積サブ配列 | C++ | の上) | ○(1) | 中くらい | リートコード | |
392 | 家の強盗 | C++ | の上) | ○(1) | 中くらい | リートコード | |
393 | 株式を売買するのに最適な時期 IV | C++ | O(k * n) | わかりました) | 難しい | リートコード、EPI | |
395 | 並んだコイン II | C++ | の上) | ○(1) | 中くらい | | |
396 | 並んだコイン III | C++ | O(n^2) | の上) | 難しい | | |
397 | 最長の増加連続サブシーケンス | C++ | の上) | ○(1) | 簡単 | | |
398 | 最長増加連続サブシーケンス II | C++ | O(m * n) | O(m * n) | 難しい | | |
403 | 連続部分配列和 II | C++ | の上) | ○(1) | 中くらい | EPI | |
430 | スクランブルストリング | C++ | O(n^4) | O(n^3) | 難しい | リートコード | |
435 | 郵便局の問題 | C++ | O(k * n^2) | の上) | 難しい | PKU 1160 | |
436 | マキシマムスクエア | C++ | O(m * n) | の上) | 中くらい | リートコード | |
512 | デコード方法 | C++ | の上) | ○(1) | 中くらい | リートコード | |
513 | 完全な正方形 | C++ | O(n * sqrt(n)) | の上) | 中くらい | リートコード | |
514 | ペイントフェンス | C++ | の上) | ○(1) | 簡単 | リートコード | |
515 | ペイントハウス | C++ | の上) | ○(1) | 中くらい | リートコード | |
516 | ペイントハウスⅡ | C++ | O(n * k) | わかりました) | 難しい | リートコード | |
534 | ハウスロバー II | C++ | の上) | ○(1) | 中くらい | リートコード | |
564 | バックパック VI | C++ | O(n * t) | O(t) | 中くらい | | |
よく深い
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
41 | 最大サブアレイ | C++ | の上) | ○(1) | 簡単 | リートコード | |
42 | 最大サブアレイ II | C++ | の上) | の上) | 中くらい | | |
44 | 最小サブアレイ | C++ | の上) | ○(1) | 簡単 | | |
45 | 最大サブアレイ差 | C++ | の上) | の上) | 中くらい | | |
116 | ジャンプゲーム | C++ | の上) | ○(1) | 中くらい | リートコード | |
117 | ジャンプゲームⅡ | C++ | の上) | ○(1) | 中くらい | リートコード | |
182 | 数字の削除 | C++ | の上) | の上) | 中くらい | | |
187 | ガソリンスタンド | C++ | の上) | ○(1) | 簡単 | リートコード | |
192 | ワイルドカードマッチング | C++ | O(m + n) | ○(1) | 難しい | リートコード | 貪欲、DP、再帰 |
402 | 連続部分配列の合計 | C++ | の上) | ○(1) | 中くらい | EPI | |
412 | あめ | C++ | の上) | の上) | 難しい | リートコード | よく深い |
552 | 最大数の作成 | C++ | O(k * (m + n + k)) ~ O(k * (m + n + k^2)) | O(m + n + k^2) | 難しい | リートコード | 貪欲、DP |
OOデザイン
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
204 | シングルトン | C++ | ○(1) | ○(1) | 簡単 | | |
208 | 代入演算子のオーバーロード (C++ のみ) | C++ | の上) | ○(1) | 中くらい | | |
496 | おもちゃ工場 | C++ | ○(1) | ○(1) | 簡単 | | |
497 | シェイプファクトリー | C++ | ○(1) | ○(1) | 簡単 | | |
498 | 駐車場 | C++ | O(n * m * k) | O(n * m * k) | 難しい | CTCI | OO デザイン、Pimpl イディオム、スマート ポインター |
システム設計
# | タイトル | 解決 | 時間 | 空間 | 困難 | タグ | 注記 |
---|
501 | ミニツイッター | C++ | O(クログ) | O(t + f) | 中くらい | | |