Re: [閒聊] 每日leetcode

看板Marginalman作者 (dont)時間1年前 (2024/11/11 21:03), 編輯推噓1(104)
留言5則, 5人參與, 1年前最新討論串1109/1548 (看更多)
2601. Prime Subtraction Operation ## 思路 假如新遞增陣列的前一個值是prev, 下一個值 num-prime 要大於 prev => 先建質數表, 掃陣列用Binary Search找最大可能的prime 並更新prev ## Code ```python class Solution: def primeSubOperation(self, nums: List[int]) -> bool: is_prime = [True] * 1001 is_prime[0] = is_prime[1] = False for i in range(2, int(sqrt(1001)) + 1): if not is_prime[i]: continue for j in range(2*i, 1001, i): is_prime[j] = False primes = [i for i in range(2, 1001) if is_prime[i]] prev = 0 for num in nums: if num <= prev: return False idx = bisect_left(primes, num - prev) - 1 prev = num - primes[idx] if idx != -1 else num return True ``` -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 185.213.82.158 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1731330217.A.7D4.html

11/11 21:04, 1年前 , 1F
大師
11/11 21:04, 1F

11/11 21:07, 1年前 , 2F
大師
11/11 21:07, 2F

11/11 21:09, 1年前 , 3F
大師
11/11 21:09, 3F

11/11 21:17, 1年前 , 4F
剩我什麼都不會了
11/11 21:17, 4F

11/11 22:01, 1年前 , 5F
酷 沒想到可以二分搜
11/11 22:01, 5F
文章代碼(AID): #1dCW2fVK (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1dCW2fVK (Marginalman)