常見算法題目


介紹

leetcode 題解,記錄自己的 leetcode 解題之路。

本倉庫目前分為五個部分:

  • 第一個部分是 leetcode 經典題目的解析,包括思路,關鍵點和具體的代碼實現。

  • 第二部分是對於數據結構與算法的總結

  • 第三部分是 anki 卡片, 將 leetcode 題目按照一定的方式記錄在 anki 中,方便大家記憶。

  • 第四部分是每日一題

  • 第五部分是計划, 這里會記錄將來要加入到以上三個部分內容

使用指南

  • 對於最近添加的部分, 后面會有 🆕 標注

  • 對於最近更新的部分, 后面會有 🖊 標注

  • 將來會在這里更新anki卡片

  • 這里有一張互聯網公司面試中經常考察的問題類型總結的思維導圖,我們可以結合圖片中的信息分析一下。

其中算法,主要是以下幾種:

  • 基礎技巧:分治、二分、貪心

  • 排序算法:快速排序、歸並排序、計數排序

  • 搜索算法:回溯、遞歸、深度優先遍歷,廣度優先遍歷,二叉搜索樹等

  • 圖論:最短路徑、最小生成樹

  • 動態規划:背包問題、最長子序列

數據結構,主要有如下幾種:

  • 數組與鏈表:單 / 雙向鏈表

  • 棧與隊列

  • 哈希表

  • 堆:最大堆 / 最小堆

  • 樹與圖:最近公共祖先、並查集

  • 字符串:前綴樹(字典樹) / 后綴樹

精彩預告

0042.trapping-rain-water:

瀏覽器中的棧:

backtrack problems:

0198.house-robber:

0454.4-sum-ii:

Top題目進度

  • Top 100 Liked Questions (54 / 100)

  • Top Interview Questions (82 / 145)

傳送門

leetcode 經典題目的解析

簡單難度

  • 0020.Valid Parentheses

  • 0026.remove-duplicates-from-sorted-array

  • 0088.merge-sorted-array

  • 0104.maximum-depth-of-binary-tree 🆕

  • 0121.best-time-to-buy-and-sell-stock

  • 0122.best-time-to-buy-and-sell-stock-ii

  • 0125.valid-palindrome 🆕

  • 0136.single-number

  • 0155.min-stack 🆕

  • 0167.two-sum-ii-input-array-is-sorted

  • 0172.factorial-trailing-zeroes 🆕

  • 0169.majority-element

  • 0190.reverse-bits

  • 0191.number-of-1-bits

  • 0198.house-robber

  • 0203.remove-linked-list-elements

  • 0206.reverse-linked-list

  • 0219.contains-duplicate-ii

  • 0226.invert-binary-tree

  • 0263.ugly-number

  • 0283.move-zeroes

  • 0342.power-of-four

  • 0349.intersection-of-two-arrays

  • 0371.sum-of-two-integers

  • 0575.distribute-candies

中等難度

  • 0002. Add Two Numbers

  • 0003. Longest Substring Without Repeating Characters

  • 0005.longest-palindromic-substring 🆕

  • 0011.container-with-most-water

  • 0015.3-sum

  • 0019. Remove Nth Node From End of List

  • 0024. Swap Nodes In Pairs

  • 0029.divide-two-integers 🆕

  • 0039.combination-sum

  • 0040.combination-sum-ii

  • 0046.permutations

  • 0047.permutations-ii

  • 0048.rotate-image 🆕

  • 0049.group-anagrams 🆕

  • 0055.jump-game

  • 0056.merge-intervals

  • 0062.unique-paths

  • 0073.set-matrix-zeroes

  • 0075.sort-colors

  • 0078.subsets

  • 0086.partition-list

  • 0090.subsets-ii

  • 0091.decode-ways

  • 0092.reverse-linked-list-ii

  • 0094.binary-tree-inorder-traversal

  • 0098.validate-binary-search-tree 🆕

  • 0102.binary-tree-level-order-traversal

  • 0103.binary-tree-zigzag-level-order-traversal

  • 0131.palindrome-partitioning 🆕

  • 0139.word-break

  • 0144.binary-tree-preorder-traversal

  • 0150.evaluate-reverse-polish-notation

  • 0152.maximum-product-subarray

  • 0199.binary-tree-right-side-view

  • 0201.bitwise-and-of-numbers-range

  • 0208.implement-trie-prefix-tree

  • 0209.minimum-size-subarray-sum

  • 0230.kth-smallest-element-in-a-bst

  • 0236.lowest-common-ancestor-of-a-binary-tree🆕

  • 0238.product-of-array-except-self

  • 0240.search-a-2-d-matrix-ii

  • 0279.perfect-squares

  • 0309.best-time-to-buy-and-sell-stock-with-cooldown 🆕

  • 0322.coin-change

  • 0328.odd-even-linked-list

  • 0334.increasing-triplet-subsequence

  • 0365.water-and-jug-problem

  • 0416.partition-equal-subset-sum

  • 0445.add-two-numbers-ii

  • 0454.4-sum-ii

  • 0494.target-sum

  • 0516.longest-palindromic-subsequence 🆕

  • 0518.coin-change-2

  • 0609.find-duplicate-file-in-system 🆕

  • 0875.koko-eating-bananas

  • 0877.stone-game

  • 0887.super-egg-drop

  • 0900.rle-iterator

  • 1031.maximum-sum-of-two-non-overlapping-subarrays 🆕

困難難度

  • 0023.merge-k-sorted-lists

  • 0032.longest-valid-parentheses 🆕

  • 0042.trapping-rain-water

  • 0128.longest-consecutive-sequence 🆕

  • 0145.binary-tree-postorder-traversal

  • 0146.lru-cache

  • 0239.sliding-window-maximum

  • 0295.find-median-from-data-stream 🆕

  • 0301.remove-invalid-parentheses

數據結構與算法的總結

  • 數據結構(草稿)

  • 基礎算法(草稿)

  • 二叉樹的遍歷

  • 動態規划

  • 哈夫曼編碼和游程編碼

  • 布隆過濾器

  • 字符串問題

anki 卡片

Anki主要分為兩個部分:一部分是關鍵點到題目的映射,另一部分是題目到思路,關鍵點,代碼的映射。

全部卡片都在anki-card

使用方法:

anki - 文件 - 導入 - 下拉格式選擇“打包的 anki集合”,然后選中你下載好的文件,確定即可。

更多關於anki使用方法的請查看anki官網

目前已更新卡片一覽(僅列舉正面):

  • 二分法解決問題的關鍵點是什么,相關問題有哪些?

  • 如何用棧的特點來簡化操作, 涉及到的題目有哪些?

  • 雙指針問題的思路以及相關題目有哪些?

  • 滑動窗口問題的思路以及相關題目有哪些?

  • 回溯法解題的思路以及相關題目有哪些?

  • 數論解決問題的關鍵點是什么,相關問題有哪些?

  • 位運算解決問題的關鍵點是什么,相關問題有哪些?

每日一題

  • 每日一題匯總

  • 每日一題認領區

計划

  • anki 卡片 完善

  • 字符串類問題匯總


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM