如何按最重复的值对数组进行排序。?
suppose I have an array [3, 3, 3, 3, 4, 4]
Expected the result as [3, 4] since 3 is most repeated and 4 is least repeated.
有什么办法吗?
提前致谢....!
在 Python 中很简单:
data = [3, 2, 3, 4, 2, 1, 3]
frequencies = {x:0 for x in data}
for x in data:
frequencies[x] = frequencies[x] + 1
sorted_with_repetitions = sorted(data, key=lambda x:frequencies[x],reverse=True)
sorted_without_repetitions = sorted(frequencies.keys(), key=lambda x:frequencies[x],reverse=True)
print(data)
print(sorted_with_repetitions)
print(sorted_without_repetitions)
print(frequencies)
相同的方法(用于收集不同值和计数出现次数的关联容器,用于自定义比较以对具有原始数据或仅不同项的数组进行排序)适用于 Java。
这是一种方法:
distictList
:从数组中获取所有不同的值并存储在这个
countArray
:对于每个i
th 索引,distinctList
countArray[i]
都保存了distinctList[i]
现在排序countArray
并同时应用相同的交换distinctList
。
例如:[3、3、4、4、4]
不同列表 [3,4]
计数数组 [2,3]
降序排序 countArray [3,2] 同时排序 distinctList [4,3] 输出:[4, 3]`