LeetCode——1636.按照频率将数组升序排序
通过万岁!!!
- 题目:给你一个数组,对其进行排序,排序规则是先按照出现频率进行升序排列,如果频率一样,那么就按照这个数字继续降序排列。
- 思路:这个题很容易想到用map,key是数值,value是频率,然后就是先对map的key排序,然后对map的value排序。
- 技巧:java的map排序。
java代码
class Solution {public int[] frequencySort(int[] nums) {Map<Integer, Integer> map = new LinkedHashMap<>();for (int i = 0; i < nums.length; i++) {map.putIfAbsent(nums[i], 0);map.put(nums[i], map.get(nums[i]) + 1);}// 先按照key排序,然后按照value排序Map<Integer, Integer> OrderMap = new LinkedHashMap<>();map.entrySet().stream().sorted(Map.Entry.<Integer,Integer>comparingByKey().reversed()).forEachOrdered(e -> OrderMap.put(e.getKey(),e.getValue()));Map<Integer, Integer> OrderMap2 = new LinkedHashMap<>();OrderMap.entrySet().stream().sorted(Map.Entry.comparingByValue()).forEachOrdered(e -> OrderMap2.put(e.getKey(),e.getValue()));int i = 0;for (Map.Entry<Integer, Integer> set : OrderMap2.entrySet()) {for (int j = 0; j < set.getValue(); j++) {nums[i++] = set.getKey();}}return nums;}
}
- 总结:题目不是思路不是特别难,但是针对排序这一块,我也是第一次用。还是需要再注意一下。但是,时间复杂度较高,而且我不太清楚为什么需要这个排序的时候,这个map只能用新的去接收。
LeetCode——1636.按照频率将数组升序排序相关推荐
- LeetCode 1636. 按照频率将数组升序排序(哈希+排序)
文章目录 1. 题目 2. 解题 1. 题目 给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序. 如果有多个值的频率相同,请你按照数值本身将它们 降序 排序. 请你返回排序后的数组 ...
- 按照频率将数组升序排序
题目链接 按照频率将数组升序排序 题目描述 注意 将数组按照每个值的频率 升序 排序.如果有多个值的频率相同,请你按照数值本身将它们降序排序. 解答思路 先使用一个numMap存储数组中的元素以及出现 ...
- 按照频率将数组升序排序(C++)
按照频率将数组升序排序 给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序.如果有多个值的频率相同,请你按照数值本身将它们 降序 排序. 请你返回排序后的数组. 示例 1: 输入: ...
- LeetCode简单题之按照频率将数组升序排序
题目 给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序.如果有多个值的频率相同,请你按照数值本身将它们 降序 排序. 请你返回排序后的数组. 示例 1: 输入:nums = [1, ...
- PHP数组函数 sort (对数值索引的数组升序排序)
在PHP中,数组函数 sort () 用来对数值索引的数组按照升序排序. 函数语法: sort ( array &$array [, int $sort_flags = SORT_RE ...
- 一维数组升序排序并输出
要求 编写程序,输入10个整数存入一维数组,对其进行升序排序后输出. 代码 #include<stdio.h>int main(){int a[10]={0},c,i,o;for(i=0; ...
- java 数组升序排序_Java sort()数组排序升序详解
下面的文章要给大家讲到的就是Java sort()数组排序方面的知识,主要会给大家讲到升序,下面的话就一起来进行一下了解吧. 使用java.util.Arrays类当中的sort()方法对数组进行升序 ...
- 用c语言设计一个任意20个数升序排列,编写一个用选择法对一维数组升序排序的函数,并在主函数中调用该排序函数,实现对任意20个整数的排序。...
满意答案 jgbpz 推荐于 2016.03.19 采纳率:56% 等级:9 已帮助:964人 #include #include #include #define MAXlen 100void ...
- php ksort升序,php数组排序之ksort-对数组的元素键名进行升序排序
php数组排序对数组的元素键名进行升序排序并且保持索引关系,有需要的朋友可以参考一下. 这次这个函数是ksort() 函数按照键名对数组升序排序,为数组值保留原来的键. 可选的第二个参数包含附加的排序 ...
最新文章
- 几行代码实现老照片上色复原!
- 用Python3解析html的几种操作方式,你都会用吗?
- [java进阶]3.slf4j作用及其实现原理
- opengl加载显示3D模型md5mesh类型文件
- anaconda下载的python在哪_Anaconda下Python环境下载及安装
- 2. 性能测试中常见术语集合
- 简述linux虚拟内存的概念,Linux进程虚拟内存中的相关概念
- 超酷的OpenSource的Javascript Calendar控件
- laravel构造函数和中间件执行顺序问题
- python画出roc曲线 auc计算逻辑_从scikitlearn(sklearn)的多类数据计算AUC和ROC曲线?...
- 关于动态电路响应那些事
- 引用 康奈尔大学剪影
- C盘清理--模拟器(夜神为例)占用空间越来越大问题解决方案(本方法适用于安装过多个APK,虽然卸载了但是占用仍然很严重的情况)
- selenium-java 实现QQ音乐自动登录获取cookie数据,爬取qq音乐会员资源和网易云音乐会员资源。实现任意网站的会员资源爬取
- 赛迪智库联合百分点在数博会上发布消费型数字经济报告
- Preparatory Class-Day8------函数
- 抖音创作者信用分:如何提升信用等级,获取更多机会
- 以太坊:Etherscan 使用说明
- 巴比特 | 元宇宙每日必读:为什么说韩国政府是目前亚洲政府里最积极、最坚定的元宇宙支持者?...
- 专访长亮科技李劲松:17年金融IT服务商的海外新机遇
热门文章
- Java的对象关系映射
- 6大常用数据分析模型详解,做分析不再没思路
- 郑大计算机技术专硕学费,郑州大学2018年硕士研究生学费奖助政策
- linux侵入windows2003,Linux下关闭远程windows server 2003
- 计算机网络的含义是什么意思,IPv6网络是什么意思?详解IPv6网络的含义
- HTML5+CSS大作业——个人相册展示留言博客模板(6页)
- 使用ViewServer让Android真机连接Hierarchy Viewer的步骤
- Asp.NetMVC利用LigerUI搭建一个简单的后台管理详解(含登录验证)
- 《Oracle Java EE编程自学与面试指南》20-05:数据库设计
- 人在旅途——》云南8天出行计划清单