LeetCode每日一題:質(zhì)數(shù)運算

2601. 質(zhì)數(shù)減法運算

給你一個下標(biāo)從 0 開始的整數(shù)數(shù)組 nums ,數(shù)組長度為 n 欲诺。
你可以執(zhí)行無限次下述運算:
選擇一個之前未選過的下標(biāo) i 渺鹦,并選擇一個 嚴(yán)格小于 nums[i] 的質(zhì)數(shù) p ,從 nums[i] 中減去 p 海铆。
如果你能通過上述運算使得 nums 成為嚴(yán)格遞增數(shù)組,則返回 true 殴边;否則返回 false 珍语。
嚴(yán)格遞增數(shù)組 中的每個元素都嚴(yán)格大于其前面的元素。

示例 1:
輸入:nums = [4,9,6,10]
輸出:true
解釋:
在第一次運算中:選擇 i = 0 和 p = 3 是偷,然后從 nums[0] 減去 3 ,nums 變?yōu)?[1,9,6,10] 蛋铆。
在第二次運算中:選擇 i = 1 和 p = 7 刺啦,然后從 nums[1] 減去 7 ,nums 變?yōu)?[1,2,6,10] 玛瘸。
第二次運算后,nums 按嚴(yán)格遞增順序排序右核,因此答案為 true 渺绒。

解題思路:第一個數(shù)減去和自己在值方面接近的最大質(zhì)數(shù),后面的數(shù)依次進(jìn)行計算

#篩質(zhì)數(shù)的方法(0, 1既不是質(zhì)數(shù)也不是合數(shù))
MX = 1000    #1 <= nums.length <= 1000
is_prime = [True]*MX
primes = [0]
for i in range(2, MX):
    #當(dāng)該數(shù)是質(zhì)數(shù)搜变,添加
    if is_prime[i]:
        primes.append(i)
        #質(zhì)數(shù)的倍數(shù)(遍歷步長為i)不是質(zhì)數(shù)针炉,因此可以提前標(biāo)記(從i^2開始計算)
        for j in range(i*i, MX, i):
            is_prime[j] = False

class Solution:
    def primeSubOperation(self, nums: List[int]) -> bool:
        j = bisect_left(primes, nums[0]) - 1    #找到小于nums[0]的最大質(zhì)數(shù)的下標(biāo)
        pre = nums[0] - primes[j]
        for i in range(1, len(nums)):
            x = nums[i]
            # 當(dāng)前值已經(jīng)布滿條件扳抽,及時返回
            if x <= pre:
                return False
            # 剩下的每個元素都需要滿足的條件
            # x - primes[j] > pre  ==> primes[j] < x - pre
            j = bisect_left(primes, x - pre) - 1
            pre = x - primes[j]
        return True
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贸呢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子怔鳖,更是在濱河造成了極大的恐慌固蛾,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件献幔,死亡現(xiàn)場離奇詭異趾诗,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)郑兴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叽粹,“玉大人蒙具,你說我怎么就攤上這事〗ぃ” “怎么了篱昔?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長空执。 經(jīng)常有香客問我穗椅,道長,這世上最難降的妖魔是什么匹表? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任袍镀,我火速辦了婚禮,結(jié)果婚禮上苇羡,老公的妹妹穿的比我還像新娘。我一直安慰自己锦茁,他們只是感情好绣硝,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布鹉胖。 她就那樣靜靜地躺著够傍,像睡著了一般挠铲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拂苹,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天瓢棒,我揣著相機(jī)與錄音,去河邊找鬼脯宿。 笑死,一個胖子當(dāng)著我的面吹牛榴芳,可吹牛的內(nèi)容都是我干的跺撼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼柿祈,長吁一口氣:“原來是場噩夢啊……” “哼哩至!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤菜谣,失蹤者是張志新(化名)和其女友劉穎晚缩,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荞彼,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡鸣皂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年暮蹂,在試婚紗的時候發(fā)現(xiàn)自己被綠了癌压。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖帜消,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辈讶,我是刑警寧澤粘衬,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站勘伺,受9級特大地震影響褂删,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜屯阀,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一难衰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盖袭,春花似錦、人聲如沸弟塞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽系宫。三九已至,卻和暖如春笙瑟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背往枷。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工错洁, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人屯碴。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓导而,卻偏偏與公主長得像,于是被迫代替她去往敵國和親今艺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容