Re: [閒聊] 每日leetcode

看板Marginalman作者 (通通打死)時間1年前 (2024/11/06 22:58), 編輯推噓6(600)
留言6則, 6人參與, 1年前最新討論串1086/1548 (看更多)
直接硬幹 很慢 但可以 def canSortArray(self, nums: List[int]) -> bool: n = len(nums) for i in range(n): for j in range(n-i-1): if nums[j]>nums[j+1]: cnt_l, cnt_r = 0, 0 l, r = nums[j], nums[j+1] while l>0: cnt_l += (l&1) l = l >> 1 while r>0: cnt_r += (r&1) r = r >> 1 if cnt_l == cnt_r: nums[j], nums[j+1] = nums[j+1], nums[j] else: return False return True 看答案 比較聰明的方法 自己寫看看 def canSortArray(self, nums: List[int]) -> bool: def cnt(num): cnt = 0 while num>0: cnt += (num&1) num >>= 1 return cnt cur_max = nums[0] pre_max = 0 pre_cnt = cnt(nums[0]) for num in nums[1:]: cur_cnt = cnt(num) if cur_cnt==pre_cnt: cur_max = max(cur_max, num) else: pre_max = cur_max cur_max = num pre_cnt = cur_cnt if num<pre_max: return False return True 昨天的 其實想了蠻久的== 腦袋卡卡的 def minChanges(self, s: str) -> int: ans = 0 for i in range(0, len(s), 2): if s[i]!=s[i+1]: ans += 1 return ans -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.229.37.69 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1730905111.A.C3E.html

11/06 22:59, 1年前 , 1F
大師
11/06 22:59, 1F

11/06 23:02, 1年前 , 2F
別卷了
11/06 23:02, 2F

11/06 23:03, 1年前 , 3F
大師
11/06 23:03, 3F

11/06 23:04, 1年前 , 4F
大師
11/06 23:04, 4F

11/06 23:06, 1年前 , 5F
大師
11/06 23:06, 5F

11/07 00:23, 1年前 , 6F
大師
11/07 00:23, 6F
文章代碼(AID): #1dAuGNm- (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1dAuGNm- (Marginalman)