Python中的前K个常见元素
假设我们有一个非空的整数数组。我们必须返回第k个最频繁的元素。因此,如果元素为[1,1,1,1,2,2,3,3,3]且k = 2,则结果将为
正式的功能应该-
如果存在i,j,k,则返回true
因此,如果0≤i <j <k≤n-1,则arr [i] <arr [j] <arr [k]否则返回false。
为了解决这个问题,我们将遵循以下步骤-
num_freq =一个空的映射,freq_list:=一个空的映射
对于数字中的每个元素
如果我不在num_freq中,则num_freq [i]:= 1,否则将num_freq [i]增加1
对于num_freq映射中的每个键值对
如果freq_list中不存在value,则freq_list [value]:=具有[key]的列表,否则将key插入freq_list [value]数组
res:=空列表
对于我:=数字长度降至0
如果我在freq_list中,则将freq_list [i]的元素添加到res中
如果res的长度> = k,则中断
返回结果
让我们看下面的实现以更好地理解-
示例
class Solution(object):def topKFrequent(self, nums, k):
number_frequency = {}
frequency_list ={}
for i in nums:
if i not in number_frequency:
number_frequency[i] = 1
else:
number_frequency[i] += 1
for key,value in number_frequency.items():
if value not in frequency_list:
frequency_list[value] = [key]
else:
frequency_list[value].append(key)
result = []
for i in range(len(nums),0,-1):
if i in frequency_list:
result.extend(frequency_list[i])
if len(result) >=k:
break
return result
ob1 = Solution()print(ob1.topKFrequent([1,1,1,1,2,2,3,3,3], 2))
输入值
[1,1,1,1,2,2,3,3,3]2
输出结果
[1, 3]
以上是 Python中的前K个常见元素 的全部内容, 来源链接: utcz.com/z/321590.html