原创 堆(優先隊列)

定義 堆(heap)也被稱爲優先隊列(priority queue)。是一種特殊的樹狀數據結構。 普通隊列是先進先出(first in first out),而優先隊列出棧的順序是按照元素的優先權大小。 堆可以分爲”大頂堆“也稱”最大堆“(

原创 LeetCode20——有效的括號

題目描述 給定一個只包括 '(',')','{','}','[',']' 的字符串,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 注意空字符串可被認爲是有效字符串。 示例 1

原创 LeetCode141——環形鏈表

題目描述 方法一:硬破解 循環一定次數,或者循環一定的時間,還沒有出來的就是進入到環裏了,至於循環幾次或者循環多久,有空的朋友可以慢慢調這個參數。🙂🙂🙂 /** * @param {ListNode} head * @return {

原创 LeetCode206——反轉鏈表

題目描述 反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL 進階: 你可以迭代或遞歸地反轉鏈表。你能否用兩種方法解決這道題? 分析 反轉鏈表的關鍵在於將當前節點的 ne

原创 極客時間算法40講筆記之一——如何學習

如何有效學習數據結構 Chunk it up (切碎知識點) 比如要學習算法與數據結構,我們可以把想要學習的數據結構和算法羅列出來,在整理出他們之間的關係,然後各個擊破。 Deliberate practicing (刻意

原创 設計模式之 TypeScript 中的單例模式

單例模式 單例模式指的是一個類只能有一個實例存在。 在實際應用中有些場景我們只需要唯一實例的存在,如果出現多個實例就會出現問題,這個時候我們就需要用到單例模式。比如線程池,緩存,硬件設備等。 實現思路 每個類中都有一個構造函數 constr

原创 深入JavaScript之模擬 apply, call, bind

apply call bind 這三個函數可以改變 this 的綁定,語法上有略微差別,可以看我很早之前的一篇文章做過簡單的介紹 淺談JavaScript中的apply、call、bind。 this 優先級 new 關鍵字。函數被 n

原创 LeetCode176——第二高的薪水

題目描述 編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。 +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 2

原创 查詢各個科目成績前三的記錄

id student_id name course_id course_name score 1 2005001 張三 1 數學 69 2 2005002 李四 1 數學 89 3 2005005 王五 1 數學 23

原创 mysql 重複數據的處理

假設有一張表如下,含有部分重複數據,這些重複數據除了 id 不同,其他數據都相同。 id student_id name course_id course_name score 1 2005001 張三 1 數學 69 2

原创 理解 Node.js 的 GC 機制

《深入淺出Node.js》第五章《內存控制》閱讀筆記 隨着 Node 的發展,JavaScript 的應用場景早已不再侷限在瀏覽器中。本文不討論網頁應用、命令行工具等短時間執行,且隻影響終端用戶的場景。由於運行時間短,隨着進程的退出,內

原创 LeetCode70——爬樓梯

題目描述 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1.

原创 使用 trash 避免 rm -rf 悲劇

昨晚做了一個令人痛心疾首的操作,rm -rf something,把我個人電腦裏的重要文件夾給刪掉了,懵逼了半天才緩過來。還好是個人文件,不對公司造成影響。這件事也讓我意識到 rm -rf 確實是個高風險操作,文件備份也是重中之重。 爲了規

原创 實現一個簡單的WebSocket聊天室

WebSocket 簡介 WebSocket 是 HTML5 開始提供的一種在單個 TCP 連接上進行全雙工通訊的協議。 WebSocket 使得客戶端和服務器之間的數據交換變得更加簡單,允許服務端主動向客戶端推送數據。在 WebSock

原创 微信支付

微信支付分爲JSAPI支付,掃碼支付,APP支付,小程序支付等不同的支付方式。但大體的支付過程是一致的,本文以JSAPI支付,也就是微信內的H5支付爲例,描述一下支付的整個開發流程。 配置 商戶需要提前開通商戶平臺,並去公衆平臺或開放平臺提