本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试
算法面试—找众数
前提:
现在测试工程师的面试,或多或少都会问到编程技术.在编程技术中,往往会挑选一个简单的算法题.很多同学一看到这,往往就不知如何是好了.后果轻则被压低薪水,重则失去这次面试机会.
其实面试中的算法,可以通过刷题来进行准备.下面分享下最近面试遇到的算法面试题
题目-寻找一个列表中的众数
给定一个大小为n的数组,找到其中的众数
*众数:是指在数组中出现次数大于"n/2"的元素
示例:
给定数组:list = [1,2,5,5,5,5,7]
预期输出: 5
LV1:直接解题
先用最直接的方式,尝试转化题目
def func(num:list): #定义一个函数,接收"列表"数据
res = [] #定义一个变量接收结果
对于大于"n/2"这条需求,可以先求出n
n = len(num) #用len函数得到n
找到数组里的众数,可以理解为:在数组中进行循环比较.
条件是 当前元素出现次数(list.count()函数可以得出)大于 n/2
如果符合条件,则存到res变量中
对于大于"n/2"这条需求,可以先求出n
for i in num: #遍历num
now_time = num.count(i) #得到当前遍历项的出现次数
if now_time > n/2: #如果该数字出现次数大于n/2
res.append(i) #则加入结果
由于循环中,会把每一个众数都加到结果中得到如下结果<