Re: [閒聊] 每日leetcode

看板Marginalman作者 (franchouchouISBEST)時間1年前 (2024/09/18 23:23), 1年前編輯推噓4(405)
留言9則, 4人參與, 1年前最新討論串878/1548 (看更多)
今天的 前幾天剛好寫過 我那時候直接看答案 除了a+b比b+a這個方法之外 還有一個是要把數字重複無限次來比 40 vs 40010 就要把它變成 4040404040... vs 400104001040010... 這邊40會比40010大 不過其實我想了想也不知道為啥== 然後要注意全都是0的case 好像可以用ans[0]=='0'來判斷 def largestNumber(self, nums: List[int]) -> str: def compare(s1, s2): return int(str(s1)+str(s2))-int(str(s2)+str(s1)) ans = "".join([str(s) for s in sorted(nums, key=cmp_to_key(compare), reverse=True)]) if ans.count('0') == len(ans): return "0" else: return ans 然後又多寫一題 732. My Calendar III 算是經典的meeting room題目吧 直接sortedlist 又拿下一個hard from sortedcontainers import SortedList class MyCalendarThree: def __init__(self): self.s = SortedList([]) def book(self, startTime: int, endTime: int) -> int: self.s.add((startTime,1)) self.s.add((endTime,-1)) ans, cur = 0, 0 for _,num in self.s: cur += num ans = max(ans, cur) return ans -- https://i.imgur.com/QaQrl0t.jpeg
https://i.imgur.com/yXpuYNA.jpeg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.229.37.69 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1726673023.A.9CA.html

09/18 23:24, 1年前 , 1F
大師
09/18 23:24, 1F

09/18 23:25, 1年前 , 2F
不用無限次 只要s1+s2 或是s2+s1 兩個相反 看誰比較大應
09/18 23:25, 2F

09/18 23:25, 1年前 , 3F
該就可以了
09/18 23:25, 3F

09/18 23:26, 1年前 , 4F
幹你就是這樣寫的 我哭了
09/18 23:26, 4F
兩個感覺是一樣意思 但我現在也沒想清楚

09/18 23:28, 1年前 , 5F
大師 還是不太懂 明天看解答
09/18 23:28, 5F

09/18 23:30, 1年前 , 6F
大師
09/18 23:30, 6F

09/19 01:31, 1年前 , 7F
大師 你的講法應該是解答的sort(key=lambda x:x*10)
09/19 01:31, 7F

09/19 01:31, 1年前 , 8F
用重複無數次的字串當key再sort
09/19 01:31, 8F

09/19 01:31, 1年前 , 9F
因為num最多10^9 所以*10
09/19 01:31, 9F
我又想了一下 我講的方法跟我寫的方法 好像又不是同一個意思== https://i.imgur.com/Ab7Qese.jpeg
還是a+b比b+a這個方法比較直接 ※ 編輯: DJYOSHITAKA (125.229.37.69 臺灣), 09/19/2024 08:48:13
文章代碼(AID): #1cwl1_dA (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1cwl1_dA (Marginalman)