アルゴリズム基本
アルゴリズムやコンピューターの基礎 (コンピューター ネットワーク、オペレーティング システム、MySQL などを含む) などの質の高い技術記事を誰でも読みやすくするために、これらの記事を高精細な目次付きの PDF にまとめました。ただし、後でエラーを修正したり、新しいコンテンツを追加したりするため、この Github を用意しています。
したがって、この Github では、データ構造、アルゴリズム、コンピューターの基本、私の学習経験などに関する記事を共有します。面接、特に学校の採用活動に取り組んでいる場合でも、内部スキルを向上させたい場合でも、私のこれらの記事は役に立つと思います。これらの記事は基本的に、主要なブログ プラットフォームから一貫した評価を得た後にここで更新されます。
さらに、記事を読んで役に立った場合、Shuaidi は私にお願いをして、私の虚栄心を満たすためにスターを与えてください。もっとスターがあれば、スクリーンショットを撮る機会があるかもしれません。 Bのふりをしてモーメントに送ってください、ヒヒ。
最後に、電子書籍の PDF または epub バージョンを読みたい場合は、私の WeChat 公開アカウント「Shuai Di Wan Programming」にアクセスし、プログラマーの内なる筋力トレーニングに返信すると、PDF/epub バージョンの電子書籍を入手できます。すべての記事が高解像度の目次でまとめられた電子書籍なので、スキャンして読むだけで済みます。
目次
- 学習アルゴリズム
- 学習アルゴリズムの経験の共有
- 再帰を学ぶ
- 動的プログラミングを学ぶ
- 二分探索を学ぶ
- キャンパス採用アルゴリズムの面接シーンを再現
- 文字列マッチングアルゴリズムを学ぶ
- アルゴリズム的思考とスキルを学ぶ必要がある
- ソートアルゴリズムを学ぶ必要がある
- 二分木を取得する
- リンクされたリストを取得する
- データ構造を学ぶ
- コンピュータネットワークを学ぶ
- 在校生向けに書かれた体験談のまとめ
- 個人的な経験と考察
- オペレーティングシステムを学ぶ
- MySQL
- ジャワ
- Git
- 私が読んだ質の高いおすすめの本
- フォローアップ
- 感謝する
学習アルゴリズム
学習アルゴリズムの経験の共有
- プログラマーはどのようなアルゴリズムを習得する必要がありますか?
- 初心者として、アルゴリズムをどのように学べばよいでしょうか?
- leetcode の 500 問を完了した後、筆記試験/面接に合格するのは安全ですか?
再帰を学ぶ
- なぜ再帰を学べないのでしょうか?再帰に別れを告げて、私の経験のいくつかについて話しましょう
- トレーニング 1: 並べ替えられた同じ長さの 2 つの配列の上位中央値を見つける
- トレーニング 2: 2 つの順序付けされた配列の K 番目の小数を見つける
- トレーニング 3: 2 つの順序付けられた配列の中央値を見つける (思考の変革の重要性について)
動的プログラミングを学ぶ
- 動的計画法は難しいですか? DPで40の質問に答えた上でのルーティンをまとめてみました!
- 動的計画法の最適化
- トレーニング 1: 3 つの 1 次元動的計画法アルゴリズムの問題の詳細な説明
- トレーニング 2: leetcode221 の質問の詳細な説明: 最大二乗
二分探索を学ぶ
- 二分探索は本当にできますか?人生における詐欺の設計に使用できるでしょうか?
- 一見単純なアルゴリズムの 2 つの質問
- 二項対立の質問のまとめ
キャンパス採用アルゴリズムの面接シーンを再現
- ByteDance アルゴリズムのインタビューでの質問を思い出してください: 変形されたリンク リストの反転
- 手作業で細断されたアルゴリズムでの面接を思い出してください。ByteDance の面接官が私を 4 回連続で殴りました
- アリババの筆記試験の問題: ジョセフ リングの問題を 1 行のコードで解決した方法
- アリババとのインタビューを思い出してください: このインタビューは LRU キャッシュ アルゴリズムの設計に焦点を当てていました
- プレフィックスと合計の適用は NetEase の筆記試験問題から始まります
- 面接の悪用: 買い物客のアルゴリズムの面接の質問を思い出してください: 最小スタックの最適解
- インタビューの不正行為: ゲーム内の機密用語のフィルタリングはどのように実装されていますか?
- 2GB のメモリのみを使用して、20 億、40 億、80 億の整数から最頻値を見つけます
文字列マッチングアルゴリズムを学ぶ
- グラフィカル文字列マッチング KMP アルゴリズム
- 文字列マッチング Boyer-Moore アルゴリズム: テキスト エディターでは検索機能はどのように実装されていますか?
アルゴリズム的思考とスキルを学ぶ必要がある
- 完璧を目指す: 簡単なレベルのアルゴリズムの問題を難しいレベルの質問に変えた方法
- アルゴリズムの問題を賢明な解決策と共有する
- 階乗は単純ですか?正直に言うと、これらの要因に関連した面接の質問を必ずしも理解できるとは限りません。
- 面接官さん、そんな単純だけど難しいアルゴリズムの質問はしないでください。
- 素晴らしい!実際、1 行のコードで、私を長い間悩ませてきた非常に多くのアルゴリズムの問題を解決できます。
- Shuaidi は、問題をより速く解決できるように、この高頻度アルゴリズムの問題解決テクニックをまとめました。
- アルゴリズムのデータ構造におけるトリックは何ですか?
- ちょっと詳しいふりをするためのガイド
- 欠落している整数を見つける
ソートアルゴリズムを学ぶ必要がある
- コミック: クイックソートについてはもう聞かないでください
- コミック: O(n) 複雑度基数ソートがクイック ソートほど速くないのはなぜですか?
- コミック: 外部ソート: 2 GB のメモリを使用して 20 億の整数をソートするには? (実はこれも面接でよくある質問です)
- スクロールをやめて、プログラマーはトップ 10 の古典的な並べ替えアルゴリズムを学ぶ必要があります。この記事を読んでください。
二分木を取得する
- バイナリ ツリーの事前順序走査 (非再帰バージョン)
- バイナリ ツリーの順序トラバーサル (非再帰バージョン)
- バイナリ ツリーの事後探索 (非再帰バージョン)
- バイナリツリーを上から下に出力します
- 二分木の構築
- 二分木の鏡
- 二分木の部分構造
- 二分探索木の事後探索シーケンス
- バイナリツリーを再構築する
リンクされたリストを取得する
- 連結リストのトレーニング 1: 単一連結リストの K 番目のノードを削除する
- 連結リストの学習 2: 単一連結リストの中間ノードを削除する
- リンク リストのトレーニング 3: 単一リンク リストを適切に反転する方法
- 連結リストのトレーニング 4: 循環単連結リストのジョセフ問題
- リンク リストのトレーニング 5: 回文リンク リストをエレガントに判断するのに役立つ 3 つの方法
- 連結リスト訓練6: 一方向連結リストをある値に従って左が小、中が均等、右が大の形に分割する
- リンク リストのトレーニング 7: ランダムなポインター ノードを含むリンク リストをコピーする
- リンク リストのトレーニング 8: 単一リンク リストの各 K ノード間の順序を逆にする
- 連結リストトレーニング 9: 検索二分木を二重連結リストに変換する
データ構造を学ぶ
- バイナリ ヒープとは一体何ですか?
- ヒープソートとは一体何でしょうか?
- コミック: avl ツリーとは何ですか?
- Tencent のインタビューでの質問: 二分探索ツリーでは、なぜバランスのとれたツリーに赤黒ツリーが必要なのでしょうか?
- 高頻度インタビュー: B ツリーとは何ですか?ファイル インデックスでバイナリ検索ツリーではなく B ツリーが使用されるのはなぜですか?
- 今後、面接官がジャンプ台について質問したら、この記事を彼に投げかけてください。
コンピュータネットワークを学ぶ
- あるコンピュータが別のコンピュータにデータを送信する方法を 1 つの記事で理解する
- ランダムな話: https とは何ですか? これは、https に関するインターネット全体で最高の記事であるはずです。
- 図: まったく見知らぬホストが、どうやって 2 日間のデータを正しく配信できたのでしょうか?
- デジタル署名とは
- 輻輳制御とは何ですか?
- TCPフロー制御とは何ですか
- ブロードキャスト ルーティング アルゴリズムとは何ですか?ブロードキャスト ストームを解決するにはどうすればよいですか?
- 面接官は、スリーウェイ ハンドシェイクとフォーウェイ ウェーブについて何をテストしたいのでしょうか?
- コンピューターの IP はどこから来たのでしょうか?まだ設定していない
- 回線交換とパケット交換の違い
在校生向けに書かれた体験談のまとめ
- 私は 4 年間プログラミングを勉強してきました。これらの高品質の学習ツール、ウェブサイト、教材をあなたにお勧めします。
- よく考えてみると、これは一般向けの学習ルートです。
- 核となる編集: 学習を始めるための基本的なコンピューター知識: 何をどのように学ぶべきか?
- さて、私は春の採用活動で Tencent の面接に 2 回落ちました。失敗した、そして愚かな面接の経験を共有しましょう。
- 秋採用の2ヶ月が終わり、春採用と秋採用で重要な知識のポイントをお話します。
- 今後の春採用について話す必要がある(経験+重要性+準備方法)
- 春と秋の採用期間中に取り組んだプロジェクトについてお勧めのプロジェクトとインタビュー動画をいくつか教えてください
個人的な経験と考察
- 秋の採用活動も終わり、私の大学3年間は平凡なものでした。
- 過去 15 か月間、公開アカウントを書いてきましたが、その過程で何を学び、得たでしょうか?
- 私の2019年
- 私は公開アカウントで記事を書き始めてから1年以上、荒らしやブロック、褒められなどを経験してきました。
- 2020年最初のオリジナル記事: 自分をより良くする方法
- 最近の日常生活、勉強、考えたことについて話させてください
オペレーティングシステムを学ぶ
記事のこの部分は少し不十分であり、後で徐々に追加されるので、楽しみにしていてください。
- インタビューを思い出してください: プロセス間の通信方法は何ですか?どのようにコミュニケーションをとればよいでしょうか?
MySQL
- Tencent インタビュー: SQL ステートメントの実行が遅い理由は何ですか?
- 面接のヒント: MySQL インデックス関連
- これら 2 つの小さなトリックにより、私の SQL ステートメントは落とし穴を回避できるだけでなく、1000 倍も改善されました。
ジャワ
- スレッドセーフ (パート 1): volatile キーワードを徹底的に理解する
- スレッドセーフ(その2):同期を徹底的に理解する(偏ったロックから重量ロックまで)
- 一言で、重量ロック、スピン ロック、軽量ロック、バイアス ロック、悲観的ロック、楽観的ロックなど、さまざまなロックを学ぶことができます。
- 同時実行性の核心: CAS とは何ですか? Java8 はどのように CAS を最適化しますか?
- Java 同時実行パッケージの最も重要な同期クラスを学ばない勇気はありますか?
- コーディングスタイルを標準化してください
Git
- 私は最近 Git をゼロから学び、この Git コマンド ガイドをまとめました
私が読んだ質の高いおすすめの本
- 大学4年間で読んだおすすめの質の高い本
- アルゴリズムとコンピューターの基礎について読む価値のある本は何ですか?
フォローアップ
この電子書籍が皆様のお役に立てれば幸いです。今後も内容を追加していきます。誤字脱字や一部の知識ポイントの誤った記載など、多くの欠点があるかもしれません。ご質問がございましたら、私の公式アカウントから私を見つけてください。私の公式アカウントにメッセージを残すか、私の個人的な WeChat を直接追加してください。
感謝する
電子書籍を整理するのは簡単ではありません。役に立ったと思って著者に報酬を与えたい場合は、金額は重要ではありませんが、最も重要なのはあなたの意図です。この特典ステータスを利用できますので、皆さんもこの電子書籍にコメントしていただければ幸いです。
注: 支払いを行う際に、CSDN、WeChat、GitHub などのニックネームを書き留めることができます。