編寫乙個程式判斷給定的數是否為醜數。
醜數就是只包含質因數2, 3, 5
的正整數。
示例 1:
輸入: 6
輸出: true
解釋: 6 = 2 × 3
**示例 2:**
輸入: 8
輸出: true
解釋: 8 = 2 × 2 × 2
**示例 3:**
輸入: 14
輸出: false
解釋: 14 不是醜數,因為它包含了另外乙個質因數 7。
**說明:**
1. `1` 是醜數。
2. 輸入不會超過 32 位有符號整數的範圍: [−231, 231 − 1]。
### 2.解題思路
```python
從題目描述上將,是判斷乙個數是否能被,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 的二維矩陣表示乙個影象。
將影象順時針旋轉 90 度。
說明:
你必須在原地旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要使用另乙個矩陣來旋轉影象。
**示例 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
方法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:
# 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) #根據字典裡面的值最大取出他的關鍵字
力扣 包含重複元素的全排列問題
給定乙個可包含重複數字的序列,返回所有不重複的全排列 這題與上題的全排列問題類似,問題在於如何將重複序列排除在外。這裡就需要剪枝思想,即去掉多餘的子樹。我們先看圖,令nums 1,1,2 圖中可以看出,1 節點與 1 節點一致,當 1 節點擊擇子節點時與 1 節點擊擇時一致,故應該去除。類推。再看如...
力扣 題目3 無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例3 輸入 pwwkew 輸出 3 解釋 因為...
力扣第一題求兩數的和
這個簡單題我寫了半天。我本人非常不擅長程式設計,尤其不擅長寫函式。但是函式又很簡潔可以直接呼叫。所以,這也算是 近代化的艱難起步 了。我一下子能想到的辦法也就是 暴力搜尋。倆for迴圈,除此之外想不到別的了 另外不知道returnsize有啥用,刪掉還不行 note the returned arr...