簡体字中国語 |
私たちのスローガンは、 「基本的なデータ構造とアルゴリズムをマスターすることによってのみ、複雑な問題を簡単に処理できるようになります」です。
私の新しい本「アルゴリズムクリアランスへの道」が出版されました。
パッケージ版書籍購入リンク1
パッケージ版書籍購入リンク2
電子書籍購入リンク
https://github.com/fe-lucifer/fanqiang
Likou の無料の質問にはすでに多くの古典的な質問があり、すべての質問タイプをカバーしていますが、多くの企業の実際の質問はロックされています。個人的には、仕事を探しているならメンバーシップを購入するのが良いと思います。また、メンバーが閲覧できるリートブックも多数あり、学習計画と組み合わせるとかなり効率が良いです。
Liquouでは、1日1問のプラス会員チャレンジを開始しました。毎日質問に答えることでポイントが獲得でき、獲得したポイントはLiquou周辺機器と交換できます。
Leetcode メンバーシップを購入したい場合は、こちらが私だけの Leetcode 割引です: https://leetcode.cn/premium/?promoChannel=lucifer (年間メンバーはさらに 2 か月のメンバーシップを獲得でき、四半期メンバーはさらに 2 週間のメンバーシップを獲得できます)会員)
多くの教育機関はアルゴリズム面接を 7 日と 1 か月で推進していますが、それはあまり信頼できません。アルゴリズムの学習にはやはり蓄積が必要であり、量的な変化がなければ質的な変化はあり得ません。本を読むことを選ぶ人もいますが、それは良い選択です。しかし、多くの人は古い本や質の悪い本を選んだり、本に書かれている練習問題の書き方がわからなかったりして、結果が悪くなります。
これらの理由に基づいて、私は 91 日間のテスト受験アクティビティを企画し、比較的長期間 (91 日間) を通して最新の学習パスを提供し、全員にチェックインを強制する高強度の演習を行い、誰もがテストできるようにしました。 91日ぶりに会える より良い自分を。詳しいイベント紹介は下記リンクよりご覧いただけます。また、過去の講義ノートも以下にありますので、お好みに合わせてご覧ください。
最後にメッセージをお願いします。 「継続すれば、ある日突然成長します。」
参加するにはここをクリックしてください
上記のグループ活動が比較的効率が悪いと思われる場合は、現在、1 対 1 のアルゴリズム コーチングも受け付けています。料金は、アルゴリズムの基礎と学びたい内容によって異なります。興味があれば、WeChat で「アルゴリズム」とコメントしてください。コーチング」、WeChat ID: DevelopeEngineer 。
Leetcode の問題解決、独自の leetcode 問題解決パスを記録します。
この倉庫は現在5 つの部分に分かれています。
最初の部分は、アイデア、キーポイント、特定のコード実装など、leetcode の古典的な質問の分析です。
2 番目の部分は、データ構造とアルゴリズムの概要です。
3 番目の部分は anki カードです。leetcode の質問は、全員の記憶を容易にするために、特定の方法で anki に記録されます。
4 番目のパートは毎日の質問です。毎日の質問は、コミュニケーション グループ (WeChat や QQ を含む) で行われるアクティビティです。これにより、ディスカッションがより集中し、より多くのフィードバックが得られます。さらに、これらの質問は記録でき、将来的にはフィルタリングされてウェアハウスのソリューション モジュールに追加されます。
第 5 部は計画です。ここでは、上記 3 部に今後追加される内容を記録します。
注: ここでの電子書籍は、「アルゴリズム クリアランスへの道」の電子版ではなく、この倉庫のコンテンツの電子版です。
オンラインで住所を読む
期間限定で無料ダウンロード可能!料金は後からいつでも請求される可能性があります
私の公式アカウント「Likojiajia」のバックエンドにアクセスして返信し、電子書籍を入手してください。
epub にはアニメーションがまだあります
また、公式アカウントでのみ公開されているコンテンツもあるので、内容が良いと思ったら注目してみると良いでしょう。 ➕もう一つ星を付けていただけるとさらに良いです!
(写真はleetcodeより)
その中で、アルゴリズムは主に次のとおりです。
データ構造には主に次のようなものがあります。
オンラインで「面接チートシート」を見つけました。この PDF には、面接のテンプレート手順がリストされています。 、面接を完了する方法についての詳細なステップバイステップの指示が記載されています。
この PDF では、冒頭で優れたコードの 3 つの基準について言及しています。
これはとてもよく書かれています。
次にアルゴリズム面接の15ステップを列挙します。たとえば、ステップ 1:面接官が質問を終えたら、まず重要なポイントを書き留める必要があります (その後、以下のコメントとコードを書きます)。これを読んで、面接中にこれに従っている限り、次のことを行う必要があります。成功率が上がります。
おそらくそれは、質問応答の効率を変える可能性のあるブラウザ拡張機能です。
プラグインのアドレス: https://chrome.google.com/webstore/detail/leetcode-cheatsheet/fniccleejlofifaakbgppmbbcdfjonle?hl=en-US。
Google ストアにアクセスできない友人は、私の公式アカウントにアクセスしてプラグインに返信し、オフライン バージョンを入手できます。 Google Play ストアを使用してインストールすることを強くお勧めします。これにより、更新がある場合、プラグインはすぐに更新されます。
さらに、zerotrac が開発した Web サイトを使用して、合格した問題のスコアを計算することもできます。ここでのスコアとは、自分のコンテストのスコアよりも少し高い問題を選択して、合格者数に基づいて計算された推定スコアであることに注意してください。アドレス: https://zerotrac.github.io/leetcode_problem_rated/
ここでは代表的なトピックのみを示します。すべてのトピックではありません
現在、200問以上の解答が更新されており、特殊なテーマに関する問題も含めると300問近くあります。
ここで出題される問題は比較的難易度が低く、シミュレーション問題や解法が見えやすい問題がほとんどです。また、簡単な問題であれば力技でも解ける問題がほとんどです。 現時点では、データ範囲に注目してアルゴリズムの複雑さを考えてください。
もちろん、データの範囲に注意を払うだけで、多くの難しい質問が乱暴にシミュレートされる可能性も排除されません。
以下は、私がリストした典型的な質問です (91 でマークされた単語は、 91 Tianxue アルゴリズムアクティビティからのものです)。
インタビューの質問 17.12. BiNode?
0001. 2 つの数値の合計
0020. 有効な括弧
0021. 2 つの順序付きリンク リストを結合する
0026. ソートされた配列内の重複を削除する
0053. 最大部分列合計
0066.プラスワン91
0088. ソートされた 2 つの配列を結合する
0101. 対称二分木
0104. 二分木の最大深さ
0108. 順序付けされた配列を二分探索木に変換する
0121. 株を売買するのに最適な時期
0122. 株を売買するのに最適な時期 II
0125. 回文文字列の検証
0136. 一度だけ現れる数字
0155. 最小スタック?
0160. 交差リンクリスト91
0167. 2 つの数値の合計 II 入力順序配列
0169. ほとんどの要素
0172. 階乗後のゼロ
0190. バイナリビットを反転する
0191. ビット数1
0198.強盗
0203. リンクされたリスト要素を削除する
0206. 逆リンクリスト
0219. 重複要素が存在します II
0226. 二分木を反転する
0232. キューを実装するにはスタックを使用しますか?
0263. 醜い数字
0283. ゼロを移動する
0342. 4の累乗?
0349. 2 つの配列の交差
0371. 2 つの整数の合計
401. バイナリウォッチ
0437. パスサムⅢ
0455. クッキーを配布する
0504. 7 進数
0575. キャンディをシェアする
0606. 二分木に基づいて文字列を作成する
0661. 画像を滑らかにする
0665. 非減少シーケンス
821. 文字間の最短距離 91
0874. 模擬歩行ロボット
1128. 同等のドミノペアの数
1260. 2D メッシュの移行
1332. 回文部分配列を削除する
2591. 最も多くの子供たちにお金を与える
中レベルの問題は減点の割合が最も大きいため、この部分の解答が最も多くあります。 難しい問題を追求しすぎないで、まず中程度の難易度の問題をマスターしてから先に進んでください。
質問のこの部分では、質問に含まれる情報を掘り出し、簡単な質問に抽象化する必要があります。 あるいは、書くのがもっと面倒な質問もあり、コーディングスキルが低いために失敗する人もいます。したがって、ソリューションを読んで「理解」したとしても、全員が自分でコードを作成する必要があります。自分で書かないと、中身の詳細は分かりません。
以下は、私がリストした典型的な質問です (91 でマークされた単語は、 91 Tianxue アルゴリズムアクティビティからのものです)。
インタビューの質問 17.09 k 番目の番号。
インタビューの質問 17.23. 最大の黒い正方行列
インタビューの質問 16.16.
桁を増やすには?
削除後、最長連続して厳密に増加するサブリスト?
連勝
反転による文字列のソート
1 文字の違いがある部分文字列の数
バス料金?
最小ドロップパス合計
最長行列パス長
各サブリストの最小合計
スワップ後の等価ペアの数を最大化する
0002. 2つの数字を足す
0003. 繰り返し文字を含まない最長の部分文字列
0005. 最長の回文部分文字列
0011. 最も多くの水を入れる容器
0015. 3 つの数値の合計
0017. 電話番号のアルファベット
0019. リンクリストの下からN番目のノードを削除
0022. ブラケットの生成
0024. リンクリスト内のノードをペアごとに交換する
0029. 2 つの数値の除算
0031. 次のアレンジメント
0033. 回転ソート配列の検索
0039. 組み合わせ合計
0040. 組み合わせ和Ⅱ
0046. フルアレンジメント
0047. フルアレンジⅡ
0048. 画像を回転する
0049. アルファベットのアナグラムのグループ化
0050. Pow(x, n) ?
0055. ジャンプゲーム
0056. マージ間隔
0060. k番目の順列?
0061. リンクリストの回転 91
0062. 異なるパス
0073. マトリックスのゼロ化
0075.色の分類?
0078. サブセット
0079. 単語検索
0080. ソートされた配列の重複を削除 II
0086. 個別のリンクリスト
0090. サブセット II
0091. デコード方法
0092. 逆リンクリストⅡ
0094. 二分木の順番トラバース?
0095. さまざまな二分探索木 II
0096. 異なる二分探索木
0098. 二分探索木の検証
0102. 二分木のレベル順走査
0103. 二分木のジグザグレベル走査
0113. パスサム II
0129. ルートノードからリーフノードまでの数値の合計を求めますか?
0130. 周囲のエリア
0131. 分割回文文字列
0139. 単語の分割
0144. 二分木の事前順序走査
0147. リンクリストへの挿入ソート
0150. 逆ポーランド語式の評価
0152.積最大部分配列
0153. 回転ソート配列の最小値を見つける
0199. 二分木の正しい見方?
0200. 島の数は?
0201. 数値範囲のビット単位の AND
0208. Trie(プレフィックスツリー)の実装
0209. 最小長のサブ配列
0211. 単語の追加と検索 - データ構造設計
0215. 配列内で K 番目に大きい要素
0220. 繰り返し元素IIIの存在
0221. 最大平方
0227. 基本的な電卓 II
0229.モードIIを見つける
0230. 二分探索木における K 番目に小さい要素
0236. 二分木の最も新しい共通の祖先
0238. それ自体以外の配列の積
0240. 二次元行列の探索 II
0279. 完全平方数
0309. 株式の売買に最適な時期には凍結期間も含まれる
0322.交換所を変更しますか?
0324. スイングソートⅡ
0328. 奇数および偶数のリンクリスト
0331. バイナリツリーの事前順序シリアル化を検証する
0334. 増加する 3 項部分列
0337. 強盗Ⅲ
0343. 整数の分割
0365. やかんの問題
0378. 順序付き行列の K 番目に小さい要素
0380. ランダムな要素の定数時間の挿入、削除、取得
0385. ミニパーサー
0394. 文字列のデコード 91
0416. 等和サブセットの分割
0424. 置換後の最長の繰り返し文字
0438. 文字列内の文字のアナグラムをすべて検索する
0445. 2つの数字の足し算 II
0454. 4つの数の足し算II
0456.132モード
0457.457. 円形配列にループはありますか?
0464.勝てるでしょうか?
0470. Rand7() を使用して Rand10 を実装する
0473. マッチで正方形になる?
0494. 目標と
0516. 最長の回文部分列
0513. ツリーの左下隅で値 91 を見つけます
0518.チェンジエクスチェンジⅡ
0525. 連続配列
0547. 州の数
0560. 和が K である部分配列
0609. システム内の重複ファイルを検索する
0611. 有効な三角形の数?
0673. 最長増加サブシーケンスの数
0686. 積み重ねられた文字列のマッチングを繰り返す
0710. ブラックリスト内の乱数
0714. 手数料を含めた株の売買に最適な時期
0718. 最長反復部分配列
0735. 惑星衝突?
0754. 終了番号に達しました
0785. 二部グラフの判定
0790. ドミノとトミノのタイリング
0799. シャンパンタワー
0801. シーケンスを増分するための交換の最小数
0816. ファジー座標
0820. 単語の圧縮符号化
0838. ドミノを押す
0873. 最長のフィボナッチ部分列の長さ
0875. バナナ大好きケケ
0877. ストーンゲーム
0886. 二項対立の可能性
0898. 部分配列のビット単位の OR 演算
0900.RLEイテレータ
0911. オンライン選挙
0912. 配列のソート
0918. 円形部分配列の最大合計は?
0932. 美しい配列
0935. ナイトダイヤラー
0947. 同じ列または列にある最も多くの石を取り除く
0959. スラッシュで区切られた領域
0978. 最長の乱流部分配列
0987. 二分木の垂直順序走査 91
1004. 連続する 1 の最大数 III
1011. D 日以内に荷物を配達する能力
1014. 最高の観光組み合わせ
1015. K で割り切れる最小の整数
1019. リンクされたリスト内の次に大きなノード
1020. 飛び地の数
1023. キャメルケースのマッチング
1031. 2 つの重複しない部分配列の最大合計
1043. 配列を分割して最大の合計を取得する
1053. 前の順列は 1 回交換されました)
1104. 二分木の経路探索
1129. 色が交互になる最短パス
1131. 絶対値式の最大値
1138. アルファベットボード上のパス
1186. 部分配列の最大合計を取得するには、1 回削除します
1218. 最長の明確な差分部分列
1227. 航空機の座席が割り当てられる確率はどれくらいですか?
1261. 汚染されたバイナリツリー内の要素を見つける
1262. 3 で割り切れる最大の合計
1297. 部分文字列の最大出現数
1310. サブ配列 XOR クエリ
1334. しきい値距離内に隣接する都市が最も少ない都市
1371. 各母音を偶数回含む最長の部分文字列
1381. インクリメンタル操作をサポートするスタックを設計する 91
1423. 最大獲得ポイント数
1438. 差の絶対値が制限を超えない最長の連続部分配列
1558. ターゲット配列の関数呼び出しの最小数を取得する
1574. 最も短い部分配列を削除して、残りの配列をソートする
1589. すべての順列の最大合計
1631. 最小物理消費パス
1638. 1 文字だけ異なる部分文字列の数を数える
1658. x を 0 に減らすための最小演算数
1697. エッジ長制限のあるパスが存在するかどうかを確認する
1737. 3 つの条件のうち 1 つを満たすために変更する必要がある文字の最小数は何ですか?
1770. 乗算を実行する最大分数?
1793. 良好なサブ配列の最大スコア
1834. シングルスレッド CPU
1899. 複数のトリプルを結合してターゲット トリプルを形成しますか?
1904. 完了した完全なゲームの数
1906. 差の絶対値の最小値を問い合わせる
2007. 二重配列から元の配列を復元する
2008. タクシー最大利益
2592. 配列の大きな価値を最大化する
2593. すべての要素をマークした後の配列のスコア
2817. 制約下の要素間の最小絶対差
2865. 美しい塔 I
2866. 美しい塔 II
2939. 最大 XOR 積
5935. 銀行強盗には良い日
5936. 最も多くの爆弾が爆発した
5965. 同じ要素の間隔の合計
6021. 文字列内の部分文字列の最大数
種類別に見ると、難しい質問は主に次のとおりです。
解決策に関して言えば、そのほとんどは次のとおりです。
論理的に言えば、考えるのが非常に難しいか、コーディングするのが非常に難しいです。 場合によっては複数のアルゴリズムを組み合わせる必要があるため、質問のこの部分が最も難しいです。
ここでいくつかのヒントをまとめました。
以下は、私がリストした典型的な質問です (91 でマークされた単語は、 91 Tianxue アルゴリズムアクティビティからのものです)。
LCP 20. 高速交通機関
LCP 21. 追いかけっこ?
ストリーム数の間隔
トリプルインバージョン91
K 番目のペアの距離 91
最小光半径 91
最大の等価ペア集合?
チケットオーダー.md
目的地までの道路の接続
0004. 2 つの正の順序の配列の中央値を見つけますか?
0023. K 個の昇順リンクリストを結合する
0025. K 個のフリップリンクリストのセット?
0030. すべての単語の部分文字列を連結します
0032. 有効な最長括弧
0042. 雨水を受ける
0052.NクイーンⅡ
0057. インターバルの挿入
0065. 有効な数値
0084. ヒストグラム内の最大の長方形
0085. 最大の長方形
0087. 文字列をスクランブルする
0124. 二分木の最大パス和
0128. 最長連続シーケンス
0132. 分割回文文字列 II?
0140. 単語分割 II
0145. 二分木の事後走査
0146. LRU キャッシュメカニズム
0154. 回転ソート配列の最小値を求める II
0212. 単語検索Ⅱ
0239. スライディングウィンドウの最大値?
0295. データストリームの中央値
0297. バイナリツリーのシリアル化と逆シリアル化 91
0301. 無効な括弧を削除する
0312. 風船を突く
330. 必要に応じて配列を完成させます
0335. 小道を渡る
0460. LFUキャッシュ
0472.接続語
0480. スライディングウィンドウ中央値
0483. 最低限の良好なベース
0488. ズマゲーム
0493. フリップペア
0664. 奇妙なプリンター
0679. ブラックジャックゲーム
0715. レンジモジュール?
0726. 原子の数
0768. ソートできるブロックの最大数は II 91 です
0805. 配列の平均分割
0839. 類似した文字列グループ
0887. 卵を落とした
0895. 最大周波数スタック
0909. 蛇とはしご
0975. 奇偶ジャンプ
0995. K 個の連続ビットの反転の最小数
1032. 文字ストリーム
1168. 水資源配分の最適化
1178. 単語当てパズル
1203. プロジェクト管理
1255. 最高スコアを持つ単語のセット
1345. ジャンピングゲームIV
1449. デジタルコストの合計が目標値の最大数になります。
1494. パラレルコースⅡ
1521. ターゲット値に最も近い関数値を見つける
1526. ターゲット配列を形成するサブ配列の最小増分数
1639. 指定された辞書を通じてターゲット文字列を構築するためのオプションの数 new
1649. 命令を通じて順序付き配列を作成する
1671. 山配列の最小削除数を取得する
1707. 配列内の要素との最大 XOR 値
1713. サブシーケンスを取得するための最小操作数
1723. すべての作業を完了するための最小時間
1787. すべての間隔の XOR 結果をゼロにする
1835. すべての数値ペアのビットごとの AND 結果の XOR 和
1871.ジャンプゲームⅦ?
1872. ストーンゲーム VIII
1883. 時間通りに会議に到着するために必要な休憩スキップの最小回数
1970年。マトリックスを横切ることができる最後の日
2009. 配列を連続させるための最小操作数
2025. 配列を分割する方法の最大数
2030. 特定の文字を含む最小の部分列
2102. シーケンス順序クエリ
2141. N 台のコンピュータを同時に実行する最長時間
2179. 配列内の適切なトリプルの数を数えますか?
2209. カーペットを敷いた後、白いレンガは最低限必要ですか?
2281. 魔法使いと魔法使いの総合力
2306. 会社名の列挙の最適化に関する良い質問
2312. 木のブロックを販売するという古典的な動的計画法の問題
2842. 文字列の k 個の部分列の美しい値の最大数を数える
2972. 削除された増加するサブ配列の数を数える II
3027. 人事予定数Ⅱ
3041. 配列を変更した後、配列内の連続する要素の数を最大化する
3082. すべての部分列のエネルギーの合計を求める
3108. Quan Tuli での旅行の最低費用
3347. 操作 II 実行後の要素の最高周波数
3336. 最大公約数が等しい部分列の数
Anki は主に 2 つの部分に分かれています。1 つはキーポイントを質問にマッピングする部分で、もう 1 つは質問をアイデア、キーポイント、コードにマッピングする部分です。
すべてのカードは anki-card にあります
使用方法:
anki - ファイル - インポート - ドロップダウン形式で「パッケージ化された Anki Collection」を選択し、ダウンロードしたファイルを選択して確認します。
ankiの詳しい使い方については、anki公式サイトをご確認ください。
私を WeChat 友達として追加してコミュニケーションをとることもできます。
2019-07-10: プロジェクト スターの 1W 突破を記念した短い記事です。ご興味がございましたら、スター をクリックしてください。プロジェクトは今後も更新していきますので、皆様の応援をよろしくお願いいたします。
2019-10-08: LeetCode プロジェクト Star が 2W 突破を記念して、「LeetCode」の Github 検索が 1 位になりました。
2020-04-12: プロジェクトのスター数が30,000個を突破しました。
2020-04-14:力扣加加
公式 Web サイトがオンラインになりました。特別な説明、1 日あたり 1 つの質問、ダウンロード エリア、およびビデオの解決策が追加されます。急いで収集しないでください。アドレス: http://leetcode-solution.cn/
ソリューションの提出方法に関するガイドを書きました
このプロジェクトに協力してくれた友人全員に感謝します
CC BY-NC-ND 4.0