当前位置:网站首页>LeetCode 1636. Sort the array in ascending order by frequency
LeetCode 1636. Sort the array in ascending order by frequency
2022-07-06 16:43:00 【Daylight629】
1636. Sort the array in ascending order by frequency
Give you an array of integers nums , Please arrange the array according to the frequency of each value Ascending Sort . If there are multiple values with the same frequency , Please put them according to the value itself Descending Sort .
Please return the sorted array .
Example 1:
Input :nums = [1,1,2,2,2,3]
Output :[3,1,1,2,2,2]
explain :'3' The frequency is 1,'1' The frequency is 2,'2' The frequency is 3 .
Example 2:
Input :nums = [2,3,1,3,2]
Output :[1,3,3,2,2]
explain :'2' and '3' The frequencies are 2 , So they are sorted in descending order according to the value itself .
Example 3:
Input :nums = [-1,1,-6,4,5,-6,1,4,1]
Output :[5,-1,4,4,-6,-6,1,1,1]
Tips :
1 <= nums.length <= 100-100 <= nums[i] <= 100
Two 、 Method 1
Hash + Priority queue
class Solution {
public int[] frequencySort(int[] nums) {
Map<Integer, Integer> map = new HashMap<>();
for (int num : nums) {
map.put(num, map.getOrDefault(num, 0) + 1);
}
PriorityQueue<int[]> queue = new PriorityQueue<>((o1, o2)
-> o1[0] == o2[0] ? o2[1] - o1[1] : o1[0] - o2[0]
);
for (Map.Entry<Integer, Integer> entry: map.entrySet()) {
queue.add(new int[]{
entry.getValue(), entry.getKey()});
}
int[] res = new int[nums.length];
int idx = 0;
while (!queue.isEmpty()) {
int[] pos = queue.poll();
for (int i = 0; i< pos[0]; i++) {
res[idx++] = pos[1];
}
}
return res;
}
}
Complexity analysis
Time complexity :O(n).
Spatial complexity :O(n).
边栏推荐
- sublime text 代码格式化操作
- Research Report on market supply and demand and strategy of double drum magnetic separator industry in China
- Investigation report of bench type Brinell hardness tester industry - market status analysis and development prospect prediction
- FLV格式详解
- (POJ - 1458) common subsequence (longest common subsequence)
- Chapter 5 detailed explanation of consumer groups
- Chapter 5 namenode and secondarynamenode
- QT realizes window topping, topping state switching, and multi window topping priority relationship
- Native JS realizes the functions of all selection and inverse selection -- Feng Hao's blog
- Market trend report, technical innovation and market forecast of China's desktop capacitance meter
猜你喜欢

Chapter 6 rebalance details

Submit several problem records of spark application (sparklauncher with cluster deploy mode)

第6章 DataNode

使用jq实现全选 反选 和全不选-冯浩的博客

Chapter 1 overview of MapReduce

Soft music -js find the number of times that character appears in the string - Feng Hao's blog

Use JQ to realize the reverse selection of all and no selection at all - Feng Hao's blog

Raspberry pie 4b64 bit system installation miniconda (it took a few days to finally solve it)

Solve the problem that intel12 generation core CPU single thread only runs on small cores

Tree of life (tree DP)
随机推荐
Codeforces Round #771 (Div. 2)
Input can only input numbers, limited input
Market trend report, technical innovation and market forecast of China's desktop capacitance meter
Remove the border when input is focused
Problem - 1646C. Factorials and Powers of Two - Codeforces
Research Report on market supply and demand and strategy of double drum magnetic separator industry in China
Research Report on hearing health care equipment industry - market status analysis and development prospect prediction
音视频开发面试题
两个礼拜速成软考中级软件设计师经验
FLV格式详解
Date plus 1 day
第五章 Yarn资源调度器
Acwing: Game 58 of the week
Research Report on market supply and demand and strategy of China's tetraacetylethylenediamine (TAED) industry
The concept of spark independent cluster worker and executor
Acwing - game 55 of the week
Li Kou - 298th weekly match
Classic application of stack -- bracket matching problem
Spark独立集群Worker和Executor的概念
本地可视化工具连接阿里云centOS服务器的redis