英語 | 简体中文
アルゴリズムとデータ構造
これは、アルゴリズム、データ構造、および面接の質問とその解決策をまとめたものです。このリポジトリには、一般的なアルゴリズムの問題と Java でのデータ構造の実装に対する私のソリューションが含まれています。アルゴリズムについて学ぶためにこのリポジトリを作成しました。ソリューションを継続的に追加しています。
これまでにアルゴリズム、データ構造、 300 を超える問題と解決策が提供されています。
質問
難易度ごとに分けられた質問は次のとおりです。
- 簡単な質問と回答
- 中程度の質問と回答
- 難しい質問と回答
問題点:
配列
- 配列の回転
- 重複が含まれています
- ピーク要素の検索
- 最大サブアレイ
- 配列内の K 番目に大きい要素
- 配列内のすべての重複を検索する
- 最長の増加サブシーケンス
- 画像の回転、行列
- 配列をシャッフルする
- 回転された配列の最小値を見つける
- 回転配列の検索
リンクされたリスト
- 単一リンクリストの実装
- 二重リンクリストの実装
- リンクされたリスト内のノードの削除
- 回文リンクリスト
- 逆方向リンクリスト
- 2 つのリンクされたリストの交差
- リンクリストサイクル
- リストの末尾から N 番目のノードを削除
- ソートリストを結合
- リンクされたリストの検索サイクル
- k 個のソートされたリストを結合する
その他多くのリンクリストの問題
二分木
- バイナリ ツリー レベルの順序トラバーサル
- 左葉の合計
- 二分木を反転
- 二分探索ツリー反復子
- バイナリ ツリー事後トラバーサル
- バイナリ ツリーのプレオーダー トラバーサル
- バイナリ ツリーをリンク リストに平坦化する
- 対称ツリー
- バイナリ ツリーの順序トラバーサル
- 同じ木
- 二分木の最大深さ
- バランスの取れた二分木
- 二分木の最小深さ
- ソートされたリストからバランスの取れた二分探索ツリーへ
- 二分探索ツリーの検証
- ソートされたリストからバランスの取れた BST へ
- BST 内の K 番目の最小要素
- バイナリ ツリー ジグザグ レベル順序トラバーサル
- BST 内のノードの削除
- BST の最下位共通祖先
- バイナリ ツリーの左側から見た図
- 二分木右側面図
- BSTのモード
- 最も頻度の高いサブツリーの合計
- 各行の最大要素を検索する
- BT のシリアル化と逆シリアル化
その他多くの木の問題
数学
- 整数ブレーク
- リバースビット
- 回文番号
- Math.pow
- 水差しと水の問題
- エラトステネスのふるい
- フェルマーの素数
- 逆ポーランド記法の評価
スタック&キュー
- 最小スタック
- 最小キュー
- キューを使用したスタックの実装
- スタックを使用したキューの実装
- スタックのソート
動的プログラミング
- フィボナッチ数
- ワードブレイク
- サブセット合計
- 0/1 ナップサック問題
- 最短回文 (KMP)
- 最小平方和
- 文字列の最大重み変換
- コインチェンジ
その他
- ユニオン検索
- 順列
- サブセット
アルゴリズム
並べ替えと検索
- バブルソート
- 挿入ソート
- 選択範囲の並べ替え
- カウンティングソート
- 二分探索、下限と上限
- マージソート
- クイックソート
グラフ
- 幅優先検索 (BFS)
- 深さ優先検索 (DFS)
- Prim の最小スパニング ツリー (MST)
- KrusKal の最小スパニング ツリー (MST)
- トポロジカルソート
- 最短経路ダイスクトラ
- 最短経路ベルマン・フォード
- A* ヒューリスティックなパス検索
- グラフは二部構成ですか
- グラフは接続されていますか
- 周期検出
- 無向グラフブリッジの検出
弦
- Rabin Karp 部分配列検索
- 身代金メモ
- 文字列を反転する
- 最長の共通プレフィックス
- アナグラムです
- 針と干し草の山
- ワードブレイク
- メタ文字列
データ構造:
木々
- 二分探索木 (再帰的)
- 二分探索木 (反復)
- AVL ツリー
- トライ(プレフィックスツリー)
- ハッシュ配列ツリー
- LRUキャッシュ
貢献する
バグは見つかりましたか?もっと良くする方法はありますか?ぜひプルリクエストしてみてください。 :)