编写一个程序判断给定的数是否为丑数。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) #根据字典里面的值最大取出他的关键字
有更加好的思路,或者解题方法评论区留言谢谢