使數(shù)組中所有的元素都等于零

給你一個非負整數(shù)數(shù)組 nums 桶略。在一步操作中盗飒,你必須:

選出一個正整數(shù) x ,x 需要小于或等于 nums 中 最小 的 非零 元素镇饮。
nums 中的每個正整數(shù)都減去 x。
返回使 nums 中所有元素都等于 0 需要的 最少 操作數(shù)箕母。

示例 1:

輸入:nums = [1,5,0,3,5]
輸出:3
解釋:
第一步操作:選出 x = 1 储藐,之后 nums = [0,4,0,2,4] 。
第二步操作:選出 x = 2 嘶是,之后 nums = [0,2,0,0,2] 钙勃。
第三步操作:選出 x = 2 ,之后 nums = [0,0,0,0,0] 俊啼。
示例 2:

輸入:nums = [0]
輸出:0
解釋:nums 中的每個元素都已經(jīng)是 0 肺缕,所以不需要執(zhí)行任何操作。
 

提示:

1 <= nums.length <= 100
0 <= nums[i] <= 100

來源:力扣(LeetCode)
鏈接:https://leetcode.cn/problems/make-array-zero-by-subtracting-equal-amounts

菜雞的思路

'''
整體思路就是先用冒泡把最大數(shù)和最小的有效數(shù)求出來然后按照題目上面說的一個一個減去,在記錄計算的次數(shù)
'''
class Solution:
    def minimumOperations(self, nums: list) -> int:
        nums = list(set(nums))
        if len(nums) == 1:
            return 1
        for i in range(len(nums) - 1):
            for j in range(len(nums) -1):
                if nums[j + 1] < nums[j]:
                    temp = nums[j]
                    nums[j] = nums[j + 1]
                    nums[j + 1] =temp
        count = 0
        nums = [item for item in nums if item != 0]
        while 1:
            mins = nums[0]
            for i in range(len(nums)):
                nums[i] = nums[i] - mins
            nums = [item for item in nums if item >0]
            if len(nums) == 1:
                return count + 2
            if nums[-1] == 0:
                return count + 2
            count = count + 1
if __name__ == '__main__':
    a = Solution()
    print(a.minimumOperations([2, 2, 99, 5, 6, 3,9,0]))

解出來之后就發(fā)現(xiàn)這就是在求有幾個不一樣的數(shù)同木,我的寫法完全就是畫蛇添足浮梢,我就先用set把重復的數(shù)去掉然后在把零去掉在求數(shù)組長度即可很簡單

class Solution:
    def minimumOperations(self, nums: list) -> int:
        nums = list(set(nums))
        nums = [item for item in nums if item != 0]
        return len(nums)

后面還看有人用一行代碼實現(xiàn)。彤路。

class Solution:
    def minimumOperations(self, nums: list) -> int:
        return len((set(nums)-{0}))

但是一行代碼的好像會慢些

1679069537367.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末秕硝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子洲尊,更是在濱河造成了極大的恐慌远豺,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坞嘀,死亡現(xiàn)場離奇詭異躯护,居然都是意外死亡,警方通過查閱死者的電腦和手機丽涩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門棺滞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人矢渊,你說我怎么就攤上這事继准。” “怎么了矮男?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵移必,是天一觀的道長。 經(jīng)常有香客問我毡鉴,道長崔泵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任眨补,我火速辦了婚禮管削,結(jié)果婚禮上倒脓,老公的妹妹穿的比我還像新娘撑螺。我一直安慰自己,他們只是感情好崎弃,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布甘晤。 她就那樣靜靜地躺著,像睡著了一般饲做。 火紅的嫁衣襯著肌膚如雪线婚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天盆均,我揣著相機與錄音塞弊,去河邊找鬼。 笑死,一個胖子當著我的面吹牛游沿,可吹牛的內(nèi)容都是我干的饰抒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼诀黍,長吁一口氣:“原來是場噩夢啊……” “哼袋坑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起眯勾,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤枣宫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吃环,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體也颤,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年郁轻,在試婚紗的時候發(fā)現(xiàn)自己被綠了歇拆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡范咨,死狀恐怖故觅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渠啊,我是刑警寧澤输吏,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站替蛉,受9級特大地震影響贯溅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜躲查,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一它浅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧镣煮,春花似錦姐霍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至介衔,卻和暖如春恨胚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背炎咖。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工赃泡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留寒波,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓升熊,卻偏偏與公主長得像影所,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子僚碎,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

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