NYOJ 95-众数问题

NYOJ 95-众数问题

题意:

  • t组数据。每组两行,第一行n(n<=100),第二行n个数。求这n个数中出现次数最多的数与次数。

Python解法:

  • 所用解释器版本Pyhton3.7
  • 使用input按行读入然后分隔再用map映射再用list转为列表元素
  • 使用列表排序再遍历O(n)解法得出答案,空间复杂度O(n)。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/user/bin/python
t=int(input())
for index in range(t):
n=int(input())
   num=list(map(int,input().split())) // 转化为int列表
   num.sort()   // 列表默认从小到大排序,但元素类型必须相同
   ans1=num[0]
tmp=ans2=1
for i in range(1,len(num)):
if num[i]==num[i-1]:
tmp+=1
else:tmp=1
if tmp>ans2:
ans1=num[i]
ans2=tmp
   print(ans1,ans2)