• 算法题练习——python题解BM52 数组中只出现一次的两个数字和BM51 数组中出现次数超过一半的数字


    BM52 数组中只出现一次的两个数字

    描述

            一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

    数据范围:

    数组长度 2≤n≤1000,数组中每个数的大小 0

    要求:

    空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)

    提示:

    输出时按非降序排列

    示例1

    输入:[1,4,1,6]

    返回值:[4,6]

    说明:返回的结果中较小的数排在前面

    示例2

    输入:[1,2,3,3,2,9]

    返回值:[1,9]

    python代码解: 

    1. #
    2. # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    3. #
    4. #
    5. # @param array int整型一维数组
    6. # @return int整型一维数组
    7. #
    8. class Solution:
    9. def FindNumsAppearOnce(self , array: List[int]) -> List[int]:
    10. # write code here
    11. if len(array)==2:
    12. return array
    13. array.sort()
    14. out = []
    15. if array[-1] != array[-2]:
    16. out.append(array[-1])
    17. t = 1
    18. elif array[1] != array[0]:
    19. out.append(array[0])
    20. t = 1
    21. else:
    22. t = 0
    23. for i in range(1, len(array)-1):
    24. if array[i]!=array[i-1] and array[i]!= array[i+1]:
    25. out.append(array[i])
    26. t += 1
    27. if t == 2:
    28. out.sort()
    29. return out

    BM51 数组中出现次数超过一半的数字

    描述

            给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。

    例如:

            输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。

    数据范围:

    n≤50000,数组中元素的值 0≤val≤10000

    要求:

    空间复杂度:O(1)O(1),时间复杂度 O(n)O(n)

    输入描述:

    保证数组输入非空,且保证有解

    示例1

    输入:[1,2,3,2,2,2,5,4,2]

    返回值:2

    示例2

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

    返回值:3

    示例3

    输入:[1]

    返回值:1

    python代码解: 

    1. #
    2. # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    3. #
    4. #
    5. # @param numbers int整型一维数组
    6. # @return int整型
    7. #
    8. class Solution:
    9. def MoreThanHalfNum_Solution(self , numbers: List[int]) -> int:
    10. # write code here
    11. nums = {}
    12. l = len(numbers)
    13. for index,num in enumerate(numbers):
    14. if num not in nums:
    15. nums[num] = 1
    16. else:
    17. nums[num] += 1
    18. if nums[num]>l/2:
    19. return num
    20. return

  • 相关阅读:
    JNI理解学习
    互联网摸鱼日报(2022-10-21)
    Unity中Shader的ShadowMapping的原理(阴影)
    面向智慧文博的知识图谱构建综述
    SpringBoot第49讲:SpringBoot定时任务 - 基础quartz实现方式
    FOC直流无刷电机控制算法 理论到实践 —— 理论(二)
    Python球球大作战
    计算机毕业设计Java罪犯信息管理系统(源码+系统+mysql数据库+lw文档)
    西安电子科技大学软件体系结构复习
    Codeforces 1605C. Dominant Character
  • 原文地址:https://blog.csdn.net/weixin_53919192/article/details/126881319