Python|力扣周賽2
- 2020 年 2 月 14 日
- 筆記
歡迎點擊「演算法與編程之美」↑關注我們!
本文首發於微信公眾號:"演算法與編程之美",歡迎關注,及時了解更多此系列文章。
問題描述
你一個整數數組nums和一個正整數threshold,你需要選擇一個正整數作為除數,然後將數組裡每個數都除以它,並對除法結果求和。
請你找出能夠使上述結果小於等於閾值 threshold 的除數中最小的那個。 每個數除以除數後都向上取整,比方說7/3=3,10/2=5。 題目保證一定有解
解決方案
樣式要求:
示例 1: 輸入:nums = [1,2,5,9], threshold = 6 輸出:5 解釋:如果除數為 1 ,我們可以得到和為 17 (1+2+5+9)。 如果除數為 4 ,我們可以得到和為 7 (1+1+2+3) 。如果除數為 5 ,和為 5 (1+1+1+2)。 示例 2: 輸入:nums = [2,3,5,7,11], threshold = 11 輸出:3 示例 3: 輸入:nums = [19], threshold = 5 輸出:4 提示: 1 <= nums.length <= 5 * 10^4 1 <= nums[i] <= 10^6 nums.length <= threshold <= 10^6
首先遍歷除數
然後遍曆數組
最後判斷
Python程式碼:
def fun(nums,threshold): for j in range(1,max(nums)+1): x=0 for i in nums: if i%j==0: x+=(i/j) else: x+=(i//j)+1 if x<=threshold: return j |
---|
END
實習編輯 | 王楠嵐
責 編 | 王自強
where2go 團隊