沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 3:04 AM
Sun, Mar 1, 2020 4:08 AM
[Leetcode 讀書會][week 4]
上週沒空整理寫了啥
26, 27, 28, 31, 32, 33, 35, 36
easy: 26, 27, 28, 35
medium: 31, 33, 36
hard: 32
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:05 AM
problem 26. Remove Duplicates from Sorted Array
my soultion
[Easy]
將一個排序好的數列中,重複出現的數字移除,並計算有多少個不一樣的的數字
因為是排列好的,從頭跑一輪,碰到跟上一個數字相同的就跳過,不相同的就往前移,很簡單的題目
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:07 AM
problem 27. Remove Element
my soultion
[Easy]
跟26題相似,不過這次是要移除指定的數字
做法也玩全相同,只是跳過的是根指定數字相同的部分
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:11 AM
Sun, Mar 1, 2020 4:16 AM
28. Implement strStr
my soultion
[Easy]
沐茗討厭這個題目
@blue61 - 這種題目為什麼是Easy ww
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:12 AM
總之之前學過一個演算法用來搜尋字串
要先掃一次目標要找的字串,看看他有出現過哪些跟開頭重複的部分
這類題目最喜歡出"mississippi"
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:13 AM
例如假設搜尋的字串是
sip
我就只要一個字元一個字元比看看有沒有依序出現sip就好,發現有錯時直接拉回第一個字元s就可以了
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:16 AM
好複雜喔不想說明←
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:16 AM
[預留空間如果有空想說明再說]←
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:26 AM
problem 31. Next Permutation
my soultion
[Medium]
給定一個數字序列,找到下一個用到同樣多數字、比他大的最小序列
例如給123要找到132,給151要找511,而如果已經是最大的序列,救回傳最小的序列,例如給321要回傳123。
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:26 AM
做法
Step 1. 從個位數往高位數找,找到最短的不是最大的子序列
> 例如6975236972,要找到6972(2跟72跟972都沒辦法透過交換位置變大)
> 找法:只要檢查是每個位數是不是比高一位數的數字小就可以了
Step 2. 找到比最高位數大一號的數字,放在最大位數
> 原因:因為最高位數之後是最大序列,無法再變大,所以必須改變提高最高位數才有辦法變大
> 按照上面的例子會變成7962
Step 3. 把剩下沒用到的位數排序
> 變成7269
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:32 AM
problem 32. Longest Valid Parentheses
my soultion
[Hard]
尋找最長合法括弧。
我的做法會另外準備一份跟輸入相同長度的table用來記錄狀態,記錄下每一個括弧是否合法。
從頭到尾掃一輪,遇到左括弧就記錄數量,遇到右括弧,如果還有未使用的左括弧,將兩個括弧都設為合法,否則設為不合法。
最後,把table再從頭到尾掃一次,算出每一段連續合法的部分有多長,輸出最大的。
Ἐσκός@貓咪大戰車
@eska_
說
Sun, Mar 1, 2020 4:34 AM
我這週也沒寫
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:35 AM
problem 33. Search in Rotated Sorted Array
my soultion
[Medium]
在一個排序好但經過平移的數字陣列中,找指定數字,且限制時間不能先做排序
可能是目前寫過覺得最有趣的題目之一ww
使用binary搜尋法,但是因為不是玩全排序好,需要多做一些特別的判定
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:35 AM
shadowevor
: 主揪加油www
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:37 AM
problem 35. Search Insert Position
my soultion
[Easy]
給伊個排序的數字,與一個要插入的數字,找該數字該插在哪裡
二元搜尋法。
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:39 AM
problem 36. Valid Sudoku
my soultion
[Medium]
給數獨盤面,檢查是否合法
就,正常解數獨的方法,真對每行每列每個方快建表,從頭到尾掃一次看有沒有衝突。
沐茗@煙燻機器人
@blue61
Sun, Mar 1, 2020 4:40 AM
===
載入新的回覆
上週沒空整理寫了啥
26, 27, 28, 31, 32, 33, 35, 36
easy: 26, 27, 28, 35
medium: 31, 33, 36
hard: 32
my soultion
[Easy]
將一個排序好的數列中,重複出現的數字移除,並計算有多少個不一樣的的數字
因為是排列好的,從頭跑一輪,碰到跟上一個數字相同的就跳過,不相同的就往前移,很簡單的題目
my soultion
[Easy]
跟26題相似,不過這次是要移除指定的數字
做法也玩全相同,只是跳過的是根指定數字相同的部分
my soultion
[Easy]
沐茗討厭這個題目要先掃一次目標要找的字串,看看他有出現過哪些跟開頭重複的部分
這類題目最喜歡出"mississippi"
sip
我就只要一個字元一個字元比看看有沒有依序出現sip就好,發現有錯時直接拉回第一個字元s就可以了
my soultion
[Medium]
給定一個數字序列,找到下一個用到同樣多數字、比他大的最小序列
例如給123要找到132,給151要找511,而如果已經是最大的序列,救回傳最小的序列,例如給321要回傳123。
Step 1. 從個位數往高位數找,找到最短的不是最大的子序列
> 例如6975236972,要找到6972(2跟72跟972都沒辦法透過交換位置變大)
> 找法:只要檢查是每個位數是不是比高一位數的數字小就可以了
Step 2. 找到比最高位數大一號的數字,放在最大位數
> 原因:因為最高位數之後是最大序列,無法再變大,所以必須改變提高最高位數才有辦法變大
> 按照上面的例子會變成7962
Step 3. 把剩下沒用到的位數排序
> 變成7269
my soultion
[Hard]
尋找最長合法括弧。
我的做法會另外準備一份跟輸入相同長度的table用來記錄狀態,記錄下每一個括弧是否合法。
從頭到尾掃一輪,遇到左括弧就記錄數量,遇到右括弧,如果還有未使用的左括弧,將兩個括弧都設為合法,否則設為不合法。
最後,把table再從頭到尾掃一次,算出每一段連續合法的部分有多長,輸出最大的。
my soultion
[Medium]
在一個排序好但經過平移的數字陣列中,找指定數字,且限制時間不能先做排序
可能是目前寫過覺得最有趣的題目之一ww
使用binary搜尋法,但是因為不是玩全排序好,需要多做一些特別的判定
my soultion
[Easy]
給伊個排序的數字,與一個要插入的數字,找該數字該插在哪裡
二元搜尋法。
my soultion
[Medium]
給數獨盤面,檢查是否合法
就,正常解數獨的方法,真對每行每列每個方快建表,從頭到尾掃一次看有沒有衝突。