首页 > 其他 > 详细

刷题之字符串

时间:2021-05-29 12:22:30      阅读:17      评论:0      收藏:0      [点我收藏+]

1,剑指offer-39:求重复数组中出现一半及以上的数字

nums = [2, 2, 2, 3, 3, 4]
len_nums = len(nums)
if len_nums < 2:
    return 0
# 先计算出现最多次数的值是什么
res = nums[0]
count = 1
for i in range(1, len_nums):
    # 必须先判断count是否为0
    if count == 0:
        res = nums[i]
        count = 1
    # 再看是否相等,相等加1,否则减1
    elif nums[i] != res:
        count -= 1
    elif nums[i] == res:
        count += 1
count_double = 0
# 判断是否超过一半
for j in nums:
    if j == res:
        count_double += 1
if count_double >= len_nums//2:
    return res
else:
    return 0

刷题之字符串

原文:https://www.cnblogs.com/dragon790413/p/14824682.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!