原创 Golang 面試題 (4) N個協程交替打印1-100

Golang 面試題 (4) N個協程交替打印1-100 啓動N個協程,共用一個外部變量計數器,計數器範圍是1到100 開啓N個有緩衝chan,chans[i]塞入數據代表協程i可以進行打印了,打印的數字就是計數器的數 協程i一直阻塞,直

原创 【LeetCode】二叉樹的中序遍歷(非遞歸形式:棧模擬遞歸,標記模擬遞歸,莫里斯遍歷)

二叉樹的中序遍歷 題目鏈接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 面試的時候問這道題基本都是考察非遞歸的寫法,但還是貼一下遞歸寫法: 方法1:遞歸 v

原创 【LeetCode】最長有效括號 (dp/棧統計/棧標記再統計/雙向雙指針)

最長有效括號 題目鏈接:https://leetcode-cn.com/problems/longest-valid-parentheses/ 問題分析: 方案1:動態規劃 最值問題,應該是一個最值類的dp問題,考慮拆分子問題,弄清楚子問題

原创 【LeetCode】旋轉圖像(原地算法,找規律)

旋轉圖像(找規律) 題目鏈接:https://leetcode-cn.com/problems/rotate-image/ 題目大意:將矩陣順時針旋轉90度,要求原地旋轉,空間複雜度O(1) 先水平對摺翻轉,然後主對角線翻轉 func r

原创 【LeetCode】和爲k的子數組(map統計前綴和)

和爲k的子數組(map統計前綴和) 題目鏈接:https://leetcode-cn.com/problems/subarray-sum-equals-k/ 題目分析: 求和爲k的子數組數量 我們從暴力解法一步步推導 1.首先最基礎的暴力是

原创 Golang 面試題 (1) 用協程交替打印奇偶數

Golang 面試題 (1) 用協程交替打印奇偶數 面試神策數據時,有被問到,答得不太好,記錄一下 方法1 兩個G,分別打印奇數和偶數 無緩衝channel通知這兩個G,控制打印順序 var flagChan=make(chan int

原创 【LeetCode】二叉樹的序列化和反序列化(dfs/bfs)

二叉樹的序列化和反序列化 題目鏈接:https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/ 題目大意:寫兩個函數,能夠分別對二叉樹進行序列化和反序列化

原创 【LeetCode】刪除二叉搜索樹中的節點

刪除二叉搜索樹中的節點 題目鏈接:https://leetcode-cn.com/problems/delete-node-in-a-bst/ 題目大意:刪除指定key的節點,返回root 分析:樹是二叉搜索樹,要求返回後仍然保持搜索樹的位

原创 【LeetCode】二叉樹的最近公共祖先

二叉樹的最近公共祖先 鏈接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/ 題目大意:求p和q在root樹上的公共祖先,p和q可以是自身的祖

原创 【LeetCode】課程表(圖論判環 拓撲排序/dfs)

課程表( 拓撲排序/dfs 判環) 題目鏈接:https://leetcode-cn.com/problems/course-schedule/ 題目大意:給定一個課程依賴關係圖,比如課程A依賴課程B,課程B依賴課程C,按照上述的依賴關係,

原创 【LeetCode】LRU緩存

LRU緩存 題目鏈接:https://leetcode-cn.com/problems/lru-cache/ 雙向鏈表+map map用來確定鏈表中是否存在此key的節點 雙向鏈表用來實際存儲 每次get,都把get的節點放到鏈表頭部 每次

原创 【LeetCode】二叉樹最大路徑和(dfs)

二叉樹最大路徑和 題目鏈接:https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/ 分析: 這個題目是求二叉樹的最大路徑和,要點有兩個: 最大不能走回頭路:從根節點延伸

原创 力扣 驗證二叉搜索樹(dfs或中序遍歷)

力扣 驗證二叉搜索樹(dfs或中序遍歷) 題目鏈接:https://leetcode-cn.com/problems/validate-binary-search-tree/ 題目的意思就是驗證一棵樹是不是二叉搜索樹 二叉搜索樹的特徵就是左

原创 力扣 二叉樹展開爲鏈表(dfs)

力扣 二叉樹展開爲鏈表(dfs) 題目鏈接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/ 題目的意思是按照其先序遍歷的順序將二叉樹展開爲鏈表,要求使

原创 力扣 組合總和 (標準dfs)

力扣 組合總和(標準dfs) 題目鏈接:https://leetcode-cn.com/problems/combination-sum/ 題目的大致意思就是從一個沒有重複元素的數組中,抽取任意個數其和要等於target,讓你列出所有的組合