原创 [LeetCode]problem 35. Search Insert Position

problem 35. Search Insert Position link TAG 二分查找 插入 方法 能夠比較快的明確思路——就是二分查找的應用。 然而寫起來還是很費勁,之前那道找最長遞增序列的長度其實就需要用到這道題的算

原创 [LeetCode]problem 145. Binary Tree Postorder Traversal

TAG 二叉樹非遞歸後序遍歷 基礎;重要 link 方法 不使用遞歸方法,就記得有一個關鍵,但是怎麼都想不起來了。又想着給每個節點加個標誌位了…. 看了維基百科,知道了答案。 首先,後序遍歷下,要訪問該節點,必然是在從右孩子回來的

原创 [LeetCode]problem 60. Permutation Sequence

TAG 類·進制轉換 數學;枚舉;找規律 題目鏈接 方法 首先,第一眼看過去,沒看出來規律。 看第二眼,找到了規律: 第高位往低位看,整個隨機序列的最高位從1到n的,看某一確定高位下的序列,會發現次高位也是由低到高,只不過不斷跳

原创 [LeetCode]problem 39. Combination Sum

TAG 遞歸 回溯 組合數和 link 方法 首先,需要使用遞歸,使用一個容器去存儲當前已經選擇的數,同時,在遞歸時,選擇一個數後,就將目標值減去選擇的數,作爲下次遞歸的目標數。遞歸需要傳遞的參數(保持的狀態)有 : 已選擇的數集

原创 nginx運行過程中刪除log文件無效

場景 服務器空間快爆了,連把日誌壓縮的空間都沒有了。只有把日誌刪除了。 但是可怕的事,明明都/bin/rm *.log了,而且ls -a都看不見文件了,但是df看到磁盤空間就是不變大。而且試圖寫文件也失敗,看來磁盤空間真的沒有被釋

原创 [LeetCode]problem 29. Divide Two Integers

TAG 位操作; 二分查找?; 除法就是被除數包含多少個除數 題目鏈接 方法 沒有思路,直接看得DISCUSS,寫得太好了。 Detailed Explained 8ms C++ solution 首先,dividend是被除數,divi

原创 [LeetCode]problem 279. Perfect Squares

TAG 動態規劃;廣度優先搜索;深度優先搜索; 數論;四平方和定理;三平方和定理 題目鏈接 方法 不會。不過是一道太有意思的題目了… 參見Summary of 4 different solutions (BFS, DP, static

原创 [LeetCode]problem 105. Construct Binary Tree from Preorder and Inorder Traversal

## TAG 二叉樹 ; 建樹; 先序遍歷; 中序遍歷; 遍歷規律 題目鏈接 方法 這道題應該是必須要會的吧!之前在編程之美中看到過,這次又遇到,遞歸的方法會了,但是迭代方法還不是很會。看了DISCUSS中的代碼,大致明白了,嘗試用更加清

原创 [LeetCode]problem 365. Water and Jug Problem

TAG 最大公約數; 裴蜀定理; 數論; 深搜失敗 題目鏈接 方法 服了,這個題不是太懂。以前考試的時候考過,是用深搜來做… 於是我就做了,然後發現內存爆了。有個case數太大。 然後看了DISCUSS,網上也看了下,發現是這樣: 問

原创 [LeetCode]problem 1. Two Sum

TAG 找相加爲特定和的兩個數;HashTable 題目鏈接 方法 真是智障. 只想到3sum了,由於要返回索引,又看到HashTable,於是用unordered_map來預先存所有數的索引,再來用雙指針找… 結果發現有重複值,又改用u

原创 [LeetCode]problem 166. Fraction to Recurring Decimal

TAG 循環小數除法 ; Hash記錄位置; 最小負數的絕對值無法表示!只能提升到更大的類型 題目鏈接 方法 只說方法: 其實很簡單,就是把自己手算除法的過程用代碼寫一遍就好了。我分別處理了結果的整數部分和小數部分。一個是簡單一些,另一個

原创 [LeetCode]problem 148. Sort List

TAG 歸併排序;鏈表;非遞歸歸併排序 題目鏈接 方法 要在O(nlgn)完成排序,對象又是單向鏈表,應該是優先考慮歸併排序(其實感覺快排也是可以的)。 按照LeetCode的說法,常數空間就是指非遞歸,迭代。所以如果採用歸併,那就得用

原创 [LeetCode]problem 221. Maximal Square

TAG 動態規劃 題目鏈接 方法 這道題已經是第3遍做了,第一遍是算法作業,第二遍是算法考試,第三遍就是現在了。這是唯一一次真正把可運行代碼寫出來,終於代碼驗證了一遍。一次過,沒有拼寫錯誤!看來這道題真的是了熟於心了(算法能過,這道題功

原创 [LeetCode]problem 354. Russian Doll Envelopes

TAG 二維元素的最長遞增序列 題目鏈接 方法 不知怎麼,直覺使然,覺得應該使用排序+LIS。 然而僅僅是直覺卻不能解決問題,有兩個問題需要解決: 排序策略 LIS策略 自己之前想的是排序先按w遞增,再按h遞增;LIS存儲數組使用v

原创 [LeetCode]problem 343. Integer Break

TAG 分解n得到長度至少爲2、和爲n的數字序列,使其乘積最大的方法——一直從中分出3。 數學 題目鏈接 方法 懵逼。按照提示找規律,然而也沒有找到。 果然智障。 看了DISCUZZWhy factor 2 or 3? The math