zoukankan      html  css  js  c++  java
  • 刷题(五)

    题目

    给定一个只包含正整数且非空的数组,返回该数组中重复最多的前N个数字(返回结果按重复次数从多到少排列,N不存在取值非法的情况),请用熟悉的语言实现该需求。10分钟之内写出来

    思路

    1.假设列表(数组)为a,使用set将该数组过滤,得到一个新的列表sorted_a,这个sorted_a是不重复的
    2.对sorted_a进行遍历,用遍历的元素去统计a中该元素的重复个数
    3.将元素和重复个数分别作为key,value,构造成新的字典my_dict
    4.使用sorted(my_dict.values(), reverse=True)将新字典的值倒序输出
    5.定义一个空列表new_a,然后遍历倒序排列的新字典的值,使用key,value去遍历新字典my_dict,如果my_dict的value等于倒序配列的新字典的值,且列表中没有该key,则通过append的方式将该key添加到空列表new_a中
    6.最后打印输出new_a

    代码实现

    a = [1, 6, 7, 4, 4, 5, 4, 5, 4, 5, 5, 6, 7, 8, 5, 6, 7, 3, 4, 2, 2, 1, 4, 8, 9, 4, 5, 6]
    
    
    my_dict = {}
    set_a = set(a)
    
    for item in set_a:
        if item in a:
            count = a.count(item)
            my_dict[item] = count
    
    
    new_a = []
    reverse_values = sorted(my_dict.values(), reverse=True)
    for item in reverse_values:
        for key, value in my_dict.items():
            if item == value:
                if key not in new_a:
                    new_a.append(key)
    
    print(new_a)
    
  • 相关阅读:
    win10 uwp 模拟网页输入
    PHP prev() 函数
    PHP pos() 函数
    PHP next() 函数
    PHP natsort() 函数
    PHP natcasesort() 函数
    virtualenv
    自古枪兵幸运E
    win10 uwp DataContext
    win10 uwp DataContext
  • 原文地址:https://www.cnblogs.com/my_captain/p/12807755.html
Copyright © 2011-2022 走看看