原创 乘法問題,次方問題

m*n的問題,其實操作系統是用位移來代替乘法的,這才實現了o1的複雜度,對32bit的乘法,最多執行32次的位移和加法運算 次方問題歸根到底是乘法問題,而每次乘法可以看作o1,所以算法就只能在減少乘法的次數上做功夫,我們可以把n做

原创 golang 官方FAQ

起源 項目的目的 充分使用多核,併發安全 垃圾回收,簡單易用 快速編譯 來源於實踐,解決google軟件開發中的低效問題 Clear dependencies Clear syntax Clear semantics Compo

原创 Golang 中哪些值是不可以尋址的

不可以尋址, 指的是不能通過&獲得其地址。 golang中不能尋址的可以總結爲:不可變的,臨時結果和不安全的。只要符合其中任何一個條件,它就是不可以尋址的。 具體爲: 常量的值。 基本類型值的字面量 算術操作的結果值 對各種字面量

原创 git記住配置用戶名密碼

git config --global credential.helper store vim ~/.git-credentials 並添加內容(這裏以github爲例) https://{username}:{password}

原创 174. 地下城遊戲

鏈接 題目. 難度: high 解答: 這道題其實不難,dp是一定的,關鍵是dp是從左上角遞推呢還是目的地右下角遞推。左上角遞推涉及到某個位置的餘額問題,一個dp搞不定,所以從右下角逆推。代碼寫的冗餘了一點,不過思路清晰。 pac

原创 golang Diagnostics

方法 profiling:查看內存和cpu的使用率,定位高頻率的函數,發現性能瓶頸 tracing:從整個請求的角度看,觀察請求穿過的所有span,定位請求延遲,尤其是在鏈路很長的分佈式系統中很有用 debugging:可以暫停

原创 154. 尋找旋轉排序數組中的最小值 II

鏈接 題目. 難度: high 解答: 思路還是二分法的思路,但是因爲允許存在重複的元素,所以當mid的元素跟start和end相等的時候,其實判斷不出來mid元素是屬於左邊還是右邊的,所以這時候直接簡單的start++,因爲這個

原创 95. 不同的二叉搜索樹 II

鏈接 題目. 難度: middle 解答: tree的定義就是遞歸的,所以關於樹的算法也多采用遞歸。我們可以先選擇一個root,然後確定左右子樹,再遞歸的創建左右子樹 package main import ( "fmt" )

原创 bbolt: Begin

簽名 func (db *DB) Begin(writable bool) (*Tx, error) { if writable { return db.beginRWTx() } return db.beginTx()

原创 牛客網 雀魂啓動

package main import ( "bufio" "fmt" "os" "strconv" "strings" ) func convInts(ss []string) []int { result :=

原创 99. 恢復二叉搜索樹

鏈接 題目. 難度: high 解答: morris遍歷就是利用左子樹的最右節點指向當前的節點,這樣就可以直接使用 rightMost.Right訪問到下一個元素,這樣就實現了遍歷。morris遍歷空間複雜度是O1,但是時間複雜度

原创 牛客網:最大點集合

鏈接 難度: high 解答: 先對x降序,那麼後面的點的y如果小於前面任意點的y,則必不符合條件,同時,如果前面的所有點的y都比它小,那麼他一定滿足條件。當x相等的時候,特殊處理。 package main import (

原创 120. 三角形最小路徑和

鏈接 題目. 難度: middle 解答: 這道題其實是一個典型的dp問題,下一層的路徑和最小值要依賴上一層的路徑和最小值,既可以由上到下又可以由下至上。但是這裏我們只需要依賴上一層的數據,所以空間複雜度可以優化爲只需要一層的數據

原创 codis

功能 Codis 是一個分佈式 Redis 解決方案, 對於上層的應用來說, 連接到 Codis Proxy 和連接原生的 Redis Server 沒有顯著區別 (不支持的命令列表), 上層應用可以像使用單機的 Redis 一樣