オンラインで読むことをお勧めします (Github へのアクセスは国内では不安定なことがよくあります)
推奨される Gitee 同期
- はじめに: このプロジェクトはテスト計画の完全なセットであり、誰もが寄り道を避け、アルゴリズムを段階的に学習し、作成者に従うのに役立つように設計されています。
- 正式に出版されたのは「コード思考」です。
- PDF 版: アルゴリズムに関する「Code Random Notes」の PDF 版。
- アルゴリズム公開授業:「Code Random Record」アルゴリズムのビデオ公開授業。
- 最強の 8 部構成のエッセイ: ナレッジ プラネットの本質に関するコード ランダム ノート PDF。
- 質問に回答する順序: README には質問に回答する順序が整理されています。順番に 1 つずつ回答してください。
- 学習コミュニティ: チェックイン/面接スキル/オファーの選び方/大企業からの推薦/職場のルール/履歴書の修正/テクノロジーの共有/プログラム生活について一緒に学びましょう。 「コードカプリス」ナレッジプラネットへようこそ。
- コードを送信: このプロジェクトは説明に C++ 言語を使用していますが、Java、Python、Go、JavaScript などの多言語バージョンがすでにあります。アバターを光らせるコードも提供したい場合は、ここのすべての貢献者に感謝します。をクリックし、「ここでコードを送信する方法を学びます」をクリックします。
- 転載注意:以下の記事はすべて私(プログラマーカール)のオリジナルです。このプロジェクトの記事を引用する場合は、出典を明示してください。悪意のある盗用または転送を発見した場合は、法的手段を使用して権利と利益を保護します。一緒に良い技術創作環境を維持していきましょう!
質問に答え始めたばかりの多くの学生は、leetcode で 2,000 近くの質問に直面し、どこから始めればよいのか混乱しています。
質問に答える効率が悪いと誰もが感じており、主に次の 3 つの点で時間が無駄になっています。
実際、私は以前 Zhihu でこの質問に答えました。答えはおおよそ次のとおりです。配列 -> リンクされたリスト -> ハッシュ テーブル -> 文字列 -> スタックとキュー -> ツリー -> バックトラッキング -> 貪欲 -> 動的プログラミング - > グラフ理論 -> 高度なデータ構造、そして簡単な問題から始めて、数種類の問題を解いた後、徐々に中および難しい問題に進みます。
しかし、私が自分の立場に立って感じてみると、このような全体的な計画があっても、初心者やアルゴリズムのベテランにとってさえ、自分に合ったトピックを見つけるのは非常に困難であり、時間のコストが非常に高く、そのトピックは適切なものではありません。必然的に古典的なトピックになります。
質問に答えるときは、最も効率が良くなるように、すべての古典的な質問を段階的に難易度を上げて最短の時間で解きたいと誰もが思っています。
そこで、Leetcode の質問をクリアするためのガイドをまとめました。質問の回答順序はすべて私が厳選したもので、この順序に従うだけで済みます。 README は質問の順序を整理しており、記事の順序は質問に答える順序です。質問を 1 つずつ解決するだけで、質問の海を調べて自分でトピックを選択する必要はありません。
さらに、各質問に対する詳細な解決策が書かれています (写真とテキスト、および難しい点についてのビデオが含まれています)。私の解決策は、対応する質問のホームページにリストされており、その品質は誰の目にも明らかです。
そこで、アルゴリズムを学習しているより多くの学生が回り道を避けられるように、質問に答える順序を整理しました。
leetcode をブラッシングしている場合は、このガイドの質問を解決する順序に従うことを強くお勧めします。ブラッシングが完了すると、知識システム全体が質的に飛躍したことがわかります。そうする必要はありません。質問の海の中で方向性を探してください。
上記の並び順に従って、配列からブラッシングを開始するだけです。順番が整理されているので、順番にブラッシングするだけです。
問題磨きガイドでは、各項目の冒頭に理論基礎の章があり、教科書的な理論入門のようなものではなく、実戦で必要な基礎知識がまとめられています。各トピックの最後には概要があり、これがトピックの最も包括的な概要です。
アルゴリズムのベテランにとって、このガイドは復習に最適な資料でもあります。各シリーズに対応する概要の章をざっと読むと、アルゴリズムの知識体系全体とさまざまなソリューションが頭の中に思い浮かびます。
ここでのソリューションはどれも傑作であり、慎重に検討する価値があります。
私は問題の説明では一律に C++ を使用していますが、以下のほとんどすべての問題の説明には、Java、Python、Go、JavaScript などの他の言語バージョンが含まれていることがわかります。もちろん、これは熱心な人々によって提供されたコードです。 , コードの品質も厳密に管理します。
したがって、誰でも参加でき、問題解決策のさまざまな言語バージョンを改善し、オープンソースを採用し、より多くの友人に利益をもたらすことができます。
準備はできていますか? さあ、クイズガイドを始めましょう!
「コードカプリス」学習コミュニティ
プログラミング言語
道具
仕事を探しています
アルゴリズムのパフォーマンス分析
ダブルポインタ法は基本的に配列、文字列、リンクリストの問題に適用されます。
トピック分類の概要は次のとおりです。
トピック分類の概要は次のとおりです。
トピック分類の概要は次のとおりです。
動的計画法についての話題はすでに始まっています。説明する時間はありません。皆さん、バスに乗り遅れないでください。
バックパックの問題シリーズ:
強盗シリーズ:
在庫シリーズ:
後続シリーズ:
グラフ理論が正式リリース
(継続的に更新されます....)
上記の質問は最優先事項であり、完全に理解するには少なくとも 2 回勉強する必要があります。上記の質問に習熟していて、さらに練習できる質問を探している場合は、次の質問をもう一度勉強してください。
これらの問題は非常に優れていますが、一部の問題は問題の磨き方ガイドと類似しており、問題の解決策の一部は後で補足されるため、問題の磨き方ガイドには含めていません。今後、問題解決策の一部を改善し、問題解決戦略に組み込む予定です。
さまざまな基本アルゴリズムのテンプレート
LeetCode-Master へのすべての貢献者を表示するには、ここをクリックしてください。より多くの読者がこのプロジェクトから恩恵を受けることができるように、LeetCode-Master の他の言語バージョンを補足してくださった方々に感謝します。
皆さん、こんにちは。私はハルビン工業大学の上級研究員であり、「コード キャプション」の著者であるプログラマーのカールです。テンセントとバイドゥで基盤となるバックエンド テクノロジの研究開発に従事してきました。
次の企業 WeChat アカウントを追加すると、PDF バージョンが自動的に全員に送信されます。質問回答グループに参加するかどうかも選択できます。
すでに作業している場合は、WeChat を追加するときに忘れずにメモしてください: name-city-position。学生の場合は、名前-学校-学年に注意してください。注:自己紹介をしない場合は合格できません。