10.29 - 所有沒有寫對(duì)的簡(jiǎn)單和中等題

一共五十六題,每題都寫個(gè)思路,爭(zhēng)取兩小時(shí)搞定。

  1. Divide Two Integers: 二分法的思想
  2. Spiral Matrix:旋轉(zhuǎn)的時(shí)候要注意邊界越界情況
  3. Sort Colors: 彩虹排序
  4. Remove Duplicates from Sorted List II:不知道為何要記錄這題
  5. Convert Sorted List to Binary Search Tree:用divide and conquer來做
  6. Flatten Binary Tree to Linked List:遞歸的方法就是先左右然后再合并,非遞歸的方法是preorder traversal的方法
  7. Binary Tree Upside Down: 遞歸的方法比較容易些,非遞歸的話就要用stack來模擬了
  8. Binary Search Tree Iterator:在hashnext的時(shí)候一直loop到最左邊,然后調(diào)用next的時(shí)候
  9. Bitwise AND of Numbers Range:當(dāng)m和n不等的時(shí)候就移位,并且記錄移位的位數(shù),直到相等的時(shí)候再朝回移位
  10. Majority Element II:設(shè)置兩個(gè)candidate,然后設(shè)置兩個(gè)count,用vote的方法來做就可以了
  11. Factor Combinations:backtracking的題目,不過在進(jìn)入下一層循環(huán)的時(shí)候改變的量有兩個(gè)n和cur
  12. Verify Preorder Sequence in Binary Search Tree:做法是把preorder的變成inorder,利用一個(gè)stack,觀察一下preorder的大小順序就可以了
  13. Peeking Iterator:首先要記錄兩個(gè)值,cur和prev,hasnext和peek都是操作cur,當(dāng)獲取next的值的時(shí)候,先把next值賦值給prev
  14. Inorder Successor in BST:用遞歸方法很好做
    300. Longest Increasing Subsequence:難點(diǎn)在于follow up的log n 解法
  15. Best Time to Buy and Sell Stock with Cooldown:主要是要找buy和sell之間的關(guān)系
  16. Generalized Abbreviation:這道題比較麻煩,一直不太會(huì)寫,現(xiàn)在再寫一遍,等到復(fù)習(xí)Google tag的時(shí)候再復(fù)習(xí)一遍
  17. Wiggle Sort II:這題主要要把大的放一邊把小的放一邊中間值放中間,然后再進(jìn)行排序就好了
  18. Reconstruct Itinerary:沿著一條路徑一直朝下訪問,直到無法訪問,無法訪問時(shí)候就從stack pop出來放到res里去
  19. Water and Jug Problem:這題是一道數(shù)學(xué)題
  20. Sum of Two Integers: 利用and和xor的操作
  21. Super Pow:數(shù)學(xué)題
  22. Combination Sum IV:背包問題
  23. Kth Smallest Element in a Sorted Matrix:二分法,判定條件為數(shù)數(shù)
  24. Insert Delete GetRandom O(1):利用一個(gè)array和一個(gè)hash,每次和array的最后一個(gè)值進(jìn)行交換并且更新hash值
  25. Mini Parser:每次遇到一個(gè)【就加入一個(gè)nestedinteger
  26. Lexicographical Numbers:這道題有點(diǎn)看記憶力,大概思路是有的,不知道能不能寫出bug free來
  27. Elimination Game:這道題連一個(gè)tag都沒有,其實(shí)就是記錄一個(gè)開頭值
  28. Convert a Number to Hexadecimal:進(jìn)制的轉(zhuǎn)換
  29. Sentence Screen Fitting:這題有點(diǎn)坑,不太會(huì)做
  30. Maximum XOR of Two Numbers in an Array: 從最高位開始,每次res移一位的時(shí)候,都測(cè)試一下res | 1 是不是可能的答案
  31. Find Right Interval:二分法
  32. Ternary Expression Parser:從后往前做用stack依次做
  33. Sequence Reconstruction:拓?fù)渑判虻膯栴}
  34. Minimum Moves to Equal Array Elements:數(shù)學(xué)題
  35. 132 Pattern:用stack維護(hù)一個(gè)start遞減的range
  36. Can I Win:博弈類問題
  37. Unique Substrings in Wraparound String:以每一個(gè)字母ending的最大長(zhǎng)度
  38. Ones and Zeroes:背包類問題
  39. Target Sum:又是一道背包類問題
  40. The Maze II:用heap維護(hù)一系列訪問過的點(diǎn),按照距離排序,先訪問heap里最小的點(diǎn),并且試著更新visited里的長(zhǎng)度
  41. Longest Palindromic Subsequence:dp問題,對(duì)角線型dp
  42. Continuous Subarray Sum:要形成k的倍數(shù),也就是要在dict里重復(fù)prefixsum % k
  43. Lonely Pixel II: 好晦澀的題目
  44. Split Array with Equal Sum:i,j,k固定一下j
  45. Optimal Division:數(shù)學(xué)題,或者是記憶化搜索
  46. Split Concatenated Strings:非Google題,不做了
  47. Add Bold Tag in String:遇到兩組字符串的情況,某一組特別大,那么就考慮loop另一組
  48. Task Scheduler:用heap來依次做, 每次都把heap里的要用的元素pop出來放到一個(gè)temp里,然后再放回到heap里
  49. Exclusive Time of Functions:只要記錄當(dāng)前的任務(wù)id和prev的時(shí)間,剩下的就一點(diǎn)一點(diǎn)來判斷
  50. Shopping Offers:記憶化搜索,先記錄without special的,然后再試著如果加入special的各種情況
  51. 4 Keys Keyboard:尋求前面三個(gè)值的情況,也就是說如果用了j step到dp[j],那么剩余i-j步,然后C-A,C,V,V,V,可以獲得i-j-2個(gè)copy,然后加上本身的copy,也就是i-j-1個(gè)copy
  52. Split Array into Consecutive Subsequences:有點(diǎn)greedy的方法
  53. Beautiful Arrangement II:感覺更像是一道數(shù)學(xué)題
  54. Bulb Switcher II:又是一道數(shù)學(xué)題。。。
  55. Partition to K Equal Sum Subsets:backtracking的題目,一個(gè)一個(gè)數(shù)找
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容