算法题/数组中出现次数超过一半的数字

来源:互联网 发布:淘宝二手ps4主机能买吗 编辑:程序博客网 时间:2024/06/05 04:42

python2.7

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

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字
例子说明:

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

思路:利用set,统计不同数字出现的次数

#coding:utf-8def half_num(a):    mid_num = len(a)/2    all_num = list(set(a))    for i in all_num:        if a.count(i) > mid_num:            return i    return 'no one'print(half_num([1, 2, 3, 2, 2, 2, 5, 4, 2]))

这里写图片描述

面向对象

#coding:utf-8class Solution:    def MoreThanHalfNum_Solution(self, numbers):        self.mid_num = len(numbers)/2        self.all_nums = list(set(numbers))        for i in self.all_nums:            if numbers.count(i) > self.mid_num:                return i        return Falses = Solution()print(s.MoreThanHalfNum_Solution([1,2,3,2,2,2,5,4,2]))

python常用格式转换

#coding:utf-8"""python中常用格式转换"""a = '123'#将a转为整形b = int(a)#将c转为strc = str(b)#将d转为listd = list(a)#将e转为stre = "".join(d)e1 = " ".join(d)#将f转为list,按空格分割f = e.split()
阅读全文
0 0
原创粉丝点击