データ構造とアルゴリズムの概要(終了)

オタク時間アルゴリズムを学んだ後、私はHuahuajiangをフォローして質問ブラッシュアップし始めましたおそらく4月から。本日(2020-8-24)から、ブラッシュされたトピックの要約とレビューを開始します。これまでのところ、Leetcodeは323の質問に答えています。
2020/8/24はトピックの並べ替えを完了します。次のステップは、各トピックにハイパーリンクを追加することです。このハイパーリンクは、可能な限りcsdnのブログを指しています。

2020/10/23 12の質問を完了し、ハッシュテーブルを完了しました。進行は少し遅いです。以前にしたことをすべて忘れたかのように、ほとんどの問題は一目で解決することはできません。しかし、答えを見るとすぐに、自分で質問をしていたときの状況を思い出しました。続ける。

2020/11/5バイナリツリー、ジャンプテーブル、文字列パーツを完成させます。二分木のいくつかのコードは書かれていませんでした、ただそれを見ました。長い間時計から飛び降りて、手書きで書きたかった。弦の部分をずっと見直したかったです。

2020/11/14は写真の一部を完成させました。データ構造部分の演習が完了しました。アルゴリズムの部分で演習を開始します。

2020/11/30は2点を完了しました。

2020/12/18ブラッシュアップバックトラッキングアルゴリズムは比較的単純です。難しいトピックでは、
2020/12/24バックトラッキングアルゴリズムブラッシング
2021/1/2動的計画法ブラッシングをペイントする必要があります。文字列の動的計画法を扱うとき、私が理解できないことがまだいくつかあることに気づきました。この記事は更新されました。

1ブラッシングの質問の原則

Huahuajiangの推奨によれば、次の結論が導き出されます。
ブラシをかける
質問の数110〜20、合計200〜300の質問

質問をブラッシングする方法
1同じタイプの質問を一緒にブラッシングする
2コードを確認することは非常に重要です。少なくとも3〜5つの異なる実装を確認して
ください。3最初のパス:5分以内に考えられない場合は、答えを確認してください。 2回目のパス:答えが完全に実現されていないことを確認します。1つの質問は60分以内です。3回目:すばやく達成してみてください。15〜20分以内に失敗した場合は答えを確認してください。4
筋肉の記憶を強化するための完全な手書きコード
5コードスタイルを育成する

2データ構造の質問を整理する

質問の書き直しの原則に従って、これは私の2回目の質問の書き直しです。実際、以前の断続的なものを数えると、3つのブラシを数えることは誇張ではありません。
今回のトピックソートでは、以前のオタク時間アルゴリズムトピックの放課後トピックと今回ブラッシュされたトピックがソートされます。このパートでは、データ構造のトピックを整理します。

2.1配列

  1. 153sum
  2. 169マジョリティ要素
  3. 41ミッシングポジティブ

2.2リンクリスト

  1. 141 LinkedListCycle I
  2. 23k個のソート済みリストをマージ

2.3スタック

  1. 20個の有効な括弧
  2. 32の最長有効括弧
  3. 150逆ポーランド記法を評価する

2.4キュー

  1. ナイスタッチデザイン641
  2. 239スライディングウィンドウの最大値

2.5ハッシュテーブル

リンクリスト方式に基づいてハッシュテーブルを実装して競合の問題を解決し、LRUキャッシュ除去アルゴリズム
実装します

2.6二分木

二分探索木を実現し、挿入、削除、検索操作をサポートし
ます。二分探索木のノードの後続と先行の検索を
実現します。二分木の前、中、後の順序を実現し、二分木の
反転をトラバースします。
二分木の最大深さ
二分探索木の
パスの合計を検証する

2.7ヒープ

小さいトップヒープ、大きいトップヒープヒープ構造の説明)、優先度付きキューを
実現するヒープソートを実現する優先度付きキューを使用するK個の順序付き配列
マージする動的データセットのグループの最大のトップKを見つける

2.8ジャンプテーブル

ジャンプテーブルの実現Xiaohuiを参照

2.9図

有向グラフ、無向グラフ、加重グラフ、非加重グラフの隣接行列と隣接リストの表現方法を
実現するグラフの深さ優先探索と幅優先探索を
実現するDijkstraアルゴリズム、A *アルゴリズムを
実現するKahnアルゴリズム、トポロジカルソート用のDFSアルゴリズムを実現する

2.10トライツリー

  1. aからzまでの26文字のみを含むトライツリー

3アルゴリズムトピックの配置

3.1並べ替え

1ソート:マージソート、クイックソート、挿入ソート、バブルソート、選択ソート
2プログラミングを実装してO(n)時間計算量を達成し、データセットのK番目に大きい要素を見つけます
3バケットソートとカウントソートも忘れないでください

3.22点

  1. 35検索挿入位置
    類似トピック
    :34、704、981タグ:upper_bound
  2. 回転さソートアレイ33検索
    题目相似:81、153154162、852
    タグ:回転、PEEK
  3. 69
    Sqrt (x)タグ:upper_bound
  4. 742Dマトリックスを検索する
  5. 875ココ食べるバナナ
    同様のタイトル:1011
    タグ:答えを推測して確認する
  6. 42つのソートされた配列の中央値
  7. 並べ替えられた行列の378K番目の最小要素
    同様の質問:668
    タグ:k-th + matrix配列内の値を二分し、推測して確認するように感じます
  8. 719 K番目の最小ペア距離を見つける
    同様のタイトル:786
    タグ:k番目+2つのポインター

3.3検索(BFS、DFS)/バックトラッキング

  1. 電話番号の17の文字の組み合わせ
    :同様の質問39、40、777890、216
    タグ:組み合わせ
  2. 46順列
    同様のトピック:47、784943996
    タグ:順列
  3. 22括弧の生成
    同様のトピック301
    タグ:DFS
  4. 37数独ソルバー
    同様のトピック:51 52
    タグ:DFS
  5. 79ワード検索
    類似トピック:212
    タグ:DFS
  6. 127件のワードラダー
    同様のトピック:126752818
    タグ:BFS
  7. 542件の01マトリックス
    に類似のトピック:675934
    タグ:BFS
  8. K等しい合計サブセットに698パーティション
    :似てトピック93131241282842
    タグ:順列

3.4ハッシュ

3.5貪欲

3.6分割統治

  1. 169マジョリティ要素
  2. 153回転ソートされた配列の
    同様の問題で最小値を見つける154
  3. 912並べ替えと配列
  4. 315自己後の小さい数のカウント

3.7動的計画法

  1. 70件の階段を登ると同様のトピック:746、1137
  2. 303範囲合計クエリ–不変同様のタイトル:1218
  3. 53最大サブアレイ同様のトピック:121
  4. 62件のユニークなパス同様のトピック:6364120174、931、1210
  5. 85件の最大長方形類似のトピック:221、304、1277
  6. 198件のハウス強盗同様のトピック:213309740790801
  7. 279パーフェクトスクエアの同様のトピック:
  8. 139のワードブレイク同様の質問140818
  9. 300件の最長増加部分列類似のトピック:6731048
  10. そして最小経路(詳細な仕上げ@Smallfly最小経路合計を参照)
  11. レビンスタインの最短編集距離を達成するためのプログラミング
  12. 2つの文字列の最長共通部分列を見つけるためのプログラミング

3.8文字列照合

  1. 344リバースストリング
  2. 151文字列内の逆単語
  3. 8文字列から整数(atoi)
  4. km²
  5. ACオートマトン
    ACの紹介
    ACオートマトンはマルチパターンマッチングのkmpです。記事では詳細を読んでいませんでした。コピーされたコードが実行されました。

おすすめ

転載: blog.csdn.net/flying_all/article/details/108192559