原创 Leetcode 題解 - 排序

快速選擇 用於求解 Kth Element 問題,使用快速排序的 partition() 進行實現。 需要先打亂數組,否則最壞情況下時間複雜度爲 O(N2)。 堆排序 用於求解 TopK Elements 問題,通過維護一

原创 算法 - 並查集

前言 用於解決動態連通性問題,能動態連接兩個點,並且判斷兩個點是否連通。 方法 描述 UF(int N) 構造一個大小爲 N 的並查集 void union(int p, int q) 連接 p 和 q 節點

原创 Leetcode 題解 - 棧和隊列

用棧實現隊列 232. Implement Queue using Stacks (Easy) 棧的順序爲後進先出,而隊列的順序爲先進先出。使用兩個棧實現隊列,一個元素需要經過兩個棧才能出隊列,在經過第一個棧時元素順序被反轉,經過

原创 Leetcode 題解 - 貪心思想

保證每次操作都是局部最優的,並且最後得到的結果是全局最優的。 分配餅乾 455. Assign Cookies (Easy) Input: [1,2], [1,2,3] Output: 2 Explanation: You ha

原创 GRASP設計模式及OO設計原則淺談

說到設計模式,更爲人所知的當然是GoF(Gang of Four)的23種設計模式。 與GoF的23種設計模式不同的是,GRASP設計模式描述的是在OO設計中爲互相協作的類分配職責的原則或者建議,而GoF的設計模式則是在更高的層次上描述一

原创 Leetcode 題解 - 字符串

字符串循環移位包含 編程之美 3.1 s1 = AABCD, s2 = CDAA Return : true 給定兩個字符串 s1 和 s2,要求判定 s2 是否能夠被 s1 做循環移位得到的字符串包含。 s1 進行循環移位的結

原创 Leetcode 題解 - 數學

素數分解 每一個數都可以分解成素數的乘積,例如 84 = 22 * 31 * 50 * 71 * 110 * 130 * 170 * … 整除 令 x = 2m0 * 3m1 * 5m2 * 7m3 * 11m4 * … 令 y

原创 Leetcode 題解 - 位運算

原理 1. 基本原理 0s 表示一串 0,1s 表示一串 1。 x ^ 0s = x x & 0s = 0 x | 0s = x x ^ 1s = ~x x & 1s = x x | 1s =

原创 Leetcode-Database 題解

595. Big Countries https://leetcode.com/problems/big-countries/description/ Description +-----------------+--------

原创 谷歌瀏覽器百度網盤在線倍速播放

寫在前面,記得用Chrome瀏覽器哦~~~ 明人不說暗話, 代碼放在這裏: videojs.getPlayers("video-player").html5player.tech_.setPlaybackRate(2) 其中括號

原创 Leetcode 題解 - 雙指針

雙指針主要用於遍歷數組,兩個指針指向不同的元素,從而協同完成任務。 有序數組的 Two Sum Leetcode :167. Two Sum II - Input array is sorted (Easy) Input: num

原创 Leetcode 題解 - 搜索

深度優先搜索和廣度優先搜索廣泛運用於樹和圖中,但是它們的應用遠遠不止如此。 BFS 廣度優先搜索一層一層地進行遍歷,每層遍歷都以上一層遍歷的結果作爲起點,遍歷一個距離能訪問到的所有節點。需要注意的是,遍歷過的節點不能再次被遍歷。

原创 Leetcode 題解 - 樹

遞歸 一棵樹要麼是空樹,要麼有兩個指針,每個指針指向一棵樹。樹是一種遞歸結構,很多樹的問題可以使用遞歸來處理。 樹的高度 104. Maximum Depth of Binary Tree (Easy) public int ma

原创 Leetcode 目錄

算法思想 雙指針 排序 貪心思想 二分查找 分治 搜索 動態規劃 數學 數據結構相關 鏈表 樹 棧和隊列 哈希表 字符串 數組與矩陣 圖 位運算

原创 Leetcode 題解 - 圖

二分圖 如果可以用兩種顏色對圖中的節點進行着色,並且保證相鄰的節點顏色不同,那麼這個圖就是二分圖。 判斷是否爲二分圖 785. Is Graph Bipartite? (Medium) Input: [[1,3], [0,2],