文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

力扣题目汇总(丑数,重复N的元素,求众数

2023-01-31 00:44

关注

丑数

1.题目描述

  1. 编写一个程序判断给定的数是否为丑数。

    丑数就是只包含质因数 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.解题思路

从题目描述上将,是判断一个数是否能被,2,3,5除,然后被这几个数除会余数肯定为0,而且除到最后他会变成1

3.解题

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 次的元素

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

提示:

  1. 4 <= A.length <= 10000
  2. 0 <= A[i] < 10000
  3. A.length 为偶数

2.解题思路

#方法1 用list内置函数.count 进行计数
#把里面的元素变成字典,根据字典进行计数

3.解题

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题目描述

    • 给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

      你可以假设数组是非空的,并且给定的数组总是存在众数。

      示例 1:

      输入: [3,2,3]
      输出: 3

      示例 2:

      输入: [2,2,1,1,1,2,2]
      输出: 2

2.解题思路

方法1:根据list进行count进行计数
方法2:生成字典

3.解题

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)         #根据字典里面的值最大取出他的关键字
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯