原创 leetcode 探索 鏈表 設計鏈表

題目 設計鏈表的實現。您可以選擇使用單鏈表或雙鏈表。單鏈表中的節點應該具有兩個屬性:val 和 next。val 是當前節點的值,next 是指向下一個節點的指針/引用。如果要使用雙向鏈表,則還需要一個屬性 prev 以指示鏈表中

原创 leetcode 1496 判斷路徑是否相交

題目 給你一個字符串 path,其中 path[i] 的值可以是 ‘N’、‘S’、‘E’ 或者 ‘W’,分別表示向北、向南、向東、向西移動一個單位。 機器人從二維平面上的原點 (0, 0) 處開始出發,按 path 所指示的路徑行

原创 leetcode 探索 鏈表 反轉鏈表

題目 反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL 進階: 你可以迭代或遞歸地反轉鏈表。你能否用兩種方法解決這道題? 來源:力扣(LeetCode)

原创 leetcode 探索 鏈表 奇偶鏈表

題目 給定一個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裏的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。 請嘗試使用原地算法完成。你的算法的空間複雜度應爲 O(1),時間複雜度應爲 O(nod

原创 leetcode 215 數組中的第K個最大元素 Go實現

題目 未排序的數組中找到第 k 個最大的元素。請注意,你需要找的是數組排序後的第 k 個最大的元素,而不是第 k 個不同的元素。 示例 1: 輸入: [3,2,1,5,6,4] 和 k = 2 輸出: 5 示例 2: 輸入:

原创 leetcode 探索 鏈表 扁平化多級雙向鏈表

題目 多級雙向鏈表中,除了指向下一個節點和前一個節點指針之外,它還有一個子鏈表指針,可能指向單獨的雙向鏈表。這些子列表也可能會有一個或多個自己的子項,依此類推,生成多級數據結構,如下面的示例所示。 給你位於列表第一級的頭節點,請你

原创 leetcode 5499 檢查數組對是否可以被K整除

題目 給你一個整數數組 arr 和一個整數 k ,其中數組長度是偶數,值爲 n 。 現在需要把數組恰好分成 n / 2 對,以使每對數字的和都能夠被 k 整除。 如果存在這樣的分法,請返回 True ;否則,返回 False 。

原创 leetcode 每日打卡 用兩個棧實現隊列

題目 用兩個棧實現一個隊列。隊列的聲明如下,請實現它的兩個函數 appendTail 和 deleteHead ,分別完成在隊列尾部插入整數和在隊列頭部刪除整數的功能。(若隊列中沒有元素,deleteHead 操作返回 -1 )

原创 leetcode 探索 鏈表 設計鏈表II雙向鏈表

題目 設計鏈表的實現。您可以選擇使用單鏈表或雙鏈表。單鏈表中的節點應該具有兩個屬性:val 和 next。val 是當前節點的值,next 是指向下一個節點的指針/引用。如果要使用雙向鏈表,則還需要一個屬性 prev 以指示鏈表中

原创 leetcode 探索 鏈表 環形鏈表

題目 給定一個鏈表,判斷鏈表中是否有環。 爲了表示給定鏈表中的環,我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該鏈表中沒有環。 示例 1: 輸入:head = [3,2,

原创 leecode 探索 鏈表 環形鏈表 II

題目 給定一個鏈表,返回鏈表開始入環的第一個節點。 如果鏈表無環,則返回 null。 爲了表示給定鏈表中的環,我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該鏈表中沒有環。

原创 leetcode 探索 鏈表 迴文鏈表

題目 請判斷一個鏈表是否爲迴文鏈表。 示例 1: 輸入: 1->2 輸出: false 示例 2: 輸入: 1->2->2->1 輸出: true 分析 這題有兩個解法, 一是新建一個數組,將每個鏈表元素,加入到數組中,

原创 leetcode 探索 鏈表 相交鏈表

題目 編寫一個程序,找到兩個單鏈表相交的起始節點。 如下面的兩個鏈表: 在節點 c1 開始相交。 示例 1: 輸入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8

原创 leetcode 探索 鏈表 旋轉鏈表

題目 給定一個鏈表,旋轉鏈表,將鏈表每個節點向右移動 k 個位置,其中 k 是非負數。 示例 1: 輸入: 1->2->3->4->5->NULL, k = 2 輸出: 4->5->1->2->3->NULL 解釋: 向右旋轉

原创 記一次Go程序CPU佔用100%的問題

我寫的一個服務,有段時間CPU佔用一直是100%。因爲一直在開發環境,還沒上線,今天終於有時間了就排查了一下。100%這種佔用,一看就感覺是某個for循環導致的。 首先,選擇分析工具,Golang的性能分析工具pprof。 在Gi