一共五十六題柠衍,每題都寫個思路茁彭,爭取兩小時搞定。
- Divide Two Integers: 二分法的思想
- Spiral Matrix:旋轉(zhuǎn)的時候要注意邊界越界情況
- Sort Colors: 彩虹排序
- Remove Duplicates from Sorted List II:不知道為何要記錄這題
- Convert Sorted List to Binary Search Tree:用divide and conquer來做
- Flatten Binary Tree to Linked List:遞歸的方法就是先左右然后再合并,非遞歸的方法是preorder traversal的方法
- Binary Tree Upside Down: 遞歸的方法比較容易些妻怎,非遞歸的話就要用stack來模擬了
- Binary Search Tree Iterator:在hashnext的時候一直loop到最左邊刁赖,然后調(diào)用next的時候
- Bitwise AND of Numbers Range:當(dāng)m和n不等的時候就移位搁痛,并且記錄移位的位數(shù),直到相等的時候再朝回移位
- Majority Element II:設(shè)置兩個candidate宇弛,然后設(shè)置兩個count鸡典,用vote的方法來做就可以了
- Factor Combinations:backtracking的題目,不過在進(jìn)入下一層循環(huán)的時候改變的量有兩個n和cur
- Verify Preorder Sequence in Binary Search Tree:做法是把preorder的變成inorder枪芒,利用一個stack彻况,觀察一下preorder的大小順序就可以了
- Peeking Iterator:首先要記錄兩個值,cur和prev舅踪,hasnext和peek都是操作cur纽甘,當(dāng)獲取next的值的時候,先把next值賦值給prev
- Inorder Successor in BST:用遞歸方法很好做
300. Longest Increasing Subsequence:難點(diǎn)在于follow up的log n 解法 - Best Time to Buy and Sell Stock with Cooldown:主要是要找buy和sell之間的關(guān)系
- Generalized Abbreviation:這道題比較麻煩抽碌,一直不太會寫悍赢,現(xiàn)在再寫一遍,等到復(fù)習(xí)Google tag的時候再復(fù)習(xí)一遍
- Wiggle Sort II:這題主要要把大的放一邊把小的放一邊中間值放中間货徙,然后再進(jìn)行排序就好了
- Reconstruct Itinerary:沿著一條路徑一直朝下訪問左权,直到無法訪問,無法訪問時候就從stack pop出來放到res里去
- Water and Jug Problem:這題是一道數(shù)學(xué)題
- Sum of Two Integers: 利用and和xor的操作
- Super Pow:數(shù)學(xué)題
- Combination Sum IV:背包問題
- Kth Smallest Element in a Sorted Matrix:二分法痴颊,判定條件為數(shù)數(shù)
- Insert Delete GetRandom O(1):利用一個array和一個hash赏迟,每次和array的最后一個值進(jìn)行交換并且更新hash值
- Mini Parser:每次遇到一個【就加入一個nestedinteger
- Lexicographical Numbers:這道題有點(diǎn)看記憶力,大概思路是有的祷舀,不知道能不能寫出bug free來
- Elimination Game:這道題連一個tag都沒有瀑梗,其實(shí)就是記錄一個開頭值
- Convert a Number to Hexadecimal:進(jìn)制的轉(zhuǎn)換
- Sentence Screen Fitting:這題有點(diǎn)坑,不太會做
- Maximum XOR of Two Numbers in an Array: 從最高位開始裳扯,每次res移一位的時候抛丽,都測試一下res | 1 是不是可能的答案
- Find Right Interval:二分法
- Ternary Expression Parser:從后往前做用stack依次做
- Sequence Reconstruction:拓?fù)渑判虻膯栴}
- Minimum Moves to Equal Array Elements:數(shù)學(xué)題
- 132 Pattern:用stack維護(hù)一個start遞減的range
- Can I Win:博弈類問題
- Unique Substrings in Wraparound String:以每一個字母ending的最大長度
- Ones and Zeroes:背包類問題
- Target Sum:又是一道背包類問題
- The Maze II:用heap維護(hù)一系列訪問過的點(diǎn),按照距離排序饰豺,先訪問heap里最小的點(diǎn)亿鲜,并且試著更新visited里的長度
- Longest Palindromic Subsequence:dp問題,對角線型dp
- Continuous Subarray Sum:要形成k的倍數(shù),也就是要在dict里重復(fù)prefixsum % k
- Lonely Pixel II: 好晦澀的題目
- Split Array with Equal Sum:i蒿柳,j饶套,k固定一下j
- Optimal Division:數(shù)學(xué)題,或者是記憶化搜索
- Split Concatenated Strings:非Google題垒探,不做了
- Add Bold Tag in String:遇到兩組字符串的情況妓蛮,某一組特別大,那么就考慮loop另一組
- Task Scheduler:用heap來依次做圾叼, 每次都把heap里的要用的元素pop出來放到一個temp里蛤克,然后再放回到heap里
- Exclusive Time of Functions:只要記錄當(dāng)前的任務(wù)id和prev的時間,剩下的就一點(diǎn)一點(diǎn)來判斷
- Shopping Offers:記憶化搜索夷蚊,先記錄without special的构挤,然后再試著如果加入special的各種情況
- 4 Keys Keyboard:尋求前面三個值的情況,也就是說如果用了j step到dp[j]惕鼓,那么剩余i-j步筋现,然后C-A,C,V,V,V,可以獲得i-j-2個copy箱歧,然后加上本身的copy矾飞,也就是i-j-1個copy
- Split Array into Consecutive Subsequences:有點(diǎn)greedy的方法
- Beautiful Arrangement II:感覺更像是一道數(shù)學(xué)題
- Bulb Switcher II:又是一道數(shù)學(xué)題。叫胁。凰慈。
- Partition to K Equal Sum Subsets:backtracking的題目,一個一個數(shù)找