編寫一個程序判斷給定的數是否爲醜數。python
醜數就是隻包含質因數 2, 3, 5
的正整數。數組
示例 1:app
輸入: 6 輸出: true 解釋: 6 = 2 × 3
示例 2:函數
輸入: 8 輸出: true 解釋: 8 = 2 × 2 × 2
示例 3:code
輸入: 14 輸出: false 解釋: 14 不是醜數,由於它包含了另一個質因數 7。
說明:element
1
是醜數。從題目描述上將,是判斷一個數是否能被,2,3,5除,而後被這幾個數除會餘數確定爲0,並且除到最後他會變成1
class Solution: def isUgly(self, num: int) -> bool: if num == 0: return False div = [2, 3, 5] for x in div: while num % x == 0: num /= x return num == 1
給定一個 n × n 的二維矩陣表示一個圖像。leetcode
將圖像順時針旋轉 90 度。get
說明:it
你必須在原地旋轉圖像,這意味着你須要直接修改輸入的二維矩陣。請不要使用另外一個矩陣來旋轉圖像。io
**示例 1:在大小爲 2N
的數組 A
中有 N+1
個不一樣的元素,其中有一個元素重複了 N
次。
返回重複了 N
次的那個元素。
示例 1:
輸入:[1,2,3,3] 輸出:3
示例 2:
輸入:[2,1,2,5,3,2] 輸出:2
示例 3:
輸入:[5,1,5,2,5,3,5,4] 輸出:5
提示:
4 <= A.length <= 10000
0 <= A[i] < 10000
A.length
爲偶數#方法1 用list內置函數.count 進行計數 #把裏面的元素變成字典,根據字典進行計數
class Solution: def repeatedNTimes(self, A: List[int]) -> int: #方法1 # A_1 = set(A) # A_1 = list(A_1) # for a in A_1: # if A.count(a) == len(A)/2: # return a # break # 超時 #方法二 dic = {} for a in A: if a not in dic: dic[a]=1 #把裏面數字生成字典的KEY而且計數爲1 else: dic[a]+=1 #把裏面的數字每碰到相同的加1 num = len(A)/2 for b in dic: if dic[b] == num: return b break
給定一個大小爲 n 的數組,找到其中的衆數。衆數是指在數組中出現次數大於 ⌊ n/2 ⌋
的元素。
你能夠假設數組是非空的,而且給定的數組老是存在衆數。
示例 1:
輸入: [3,2,3] 輸出: 3
示例 2:
輸入: [2,2,1,1,1,2,2] 輸出: 2
方法1:根據list進行count進行計數 方法2:生成字典
class Solution: def majorityElement(self, nums: List[int]) -> int: #方法1 # new_list = [] # for a in nums: # if nums.count(a) >len(nums)/2: # new_list.append(a) # return max(set(new_list)) #超時 #方法二 dic = {} for a in nums: if a not in dic : dic[a] = 1 else: dic[a] += 1 return max(dic,key=dic.get) #根據字典裏面的值最大取出他的關鍵字
有更加好的思路,或者解題方法評論區留言謝謝