当前位置:网站首页>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).
边栏推荐
- MariaDB的安装与配置
- 解决Intel12代酷睿CPU单线程调度问题(二)
- Calculate the time difference
- Browser print margin, default / borderless, full 1 page A4
- SQL quick start
- Native JS realizes the functions of all selection and inverse selection -- Feng Hao's blog
- (lightoj - 1370) Bi shoe and phi shoe (Euler function tabulation)
- Simply try the new amp model of deepfacelab (deepfake)
- Kubernetes集群部署
- (lightoj - 1323) billiard balls (thinking)
猜你喜欢

第一章 MapReduce概述

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

Anaconda下安装Jupyter notebook

SQL快速入门

VMware Tools和open-vm-tools的安装与使用:解决虚拟机不全屏和无法传输文件的问题

QT implementation window gradually disappears qpropertyanimation+ progress bar

两个礼拜速成软考中级软件设计师经验

QT simulates mouse events and realizes clicking, double clicking, moving and dragging

Installation and configuration of MariaDB

Solve the problem that intel12 generation core CPU single thread only runs on small cores
随机推荐
本地可视化工具连接阿里云centOS服务器的redis
Base dice (dynamic programming + matrix fast power)
Codeforces Round #803 (Div. 2)A~C
Chapter 5 detailed explanation of consumer groups
Simple records of business system migration from Oracle to opengauss database
Chapter 1 overview of MapReduce
Detailed explanation of FLV format
JS encapsulates the method of array inversion -- Feng Hao's blog
< li> dot style list style type
China tetrabutyl urea (TBU) market trend report, technical dynamic innovation and market forecast
(lightoj - 1323) billiard balls (thinking)
Kubernetes集群部署
CMake速成
Gridhome, a static site generator that novices must know
Market trend report, technical innovation and market forecast of double-sided foam tape in China
OneForAll安装使用
(lightoj - 1354) IP checking (Analog)
Simply try the new amp model of deepfacelab (deepfake)
Calculate the time difference
第5章 消费者组详解