通过万岁!!!

  • 题目:给你一个数组,对其进行排序,排序规则是先按照出现频率进行升序排列,如果频率一样,那么就按照这个数字继续降序排列。
  • 思路:这个题很容易想到用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.按照频率将数组升序排序相关推荐

  1. LeetCode 1636. 按照频率将数组升序排序(哈希+排序)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序. 如果有多个值的频率相同,请你按照数值本身将它们 降序 排序. 请你返回排序后的数组 ...

  2. 按照频率将数组升序排序

    题目链接 按照频率将数组升序排序 题目描述 注意 将数组按照每个值的频率 升序 排序.如果有多个值的频率相同,请你按照数值本身将它们降序排序. 解答思路 先使用一个numMap存储数组中的元素以及出现 ...

  3. 按照频率将数组升序排序(C++)

    按照频率将数组升序排序 给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序.如果有多个值的频率相同,请你按照数值本身将它们 降序 排序. 请你返回排序后的数组. 示例 1: 输入: ...

  4. LeetCode简单题之按照频率将数组升序排序

    题目 给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序.如果有多个值的频率相同,请你按照数值本身将它们 降序 排序. 请你返回排序后的数组. 示例 1: 输入:nums = [1, ...

  5. PHP数组函数 sort (对数值索引的数组升序排序)

    在PHP中,数组函数 sort () 用来对数值索引的数组按照升序排序.     函数语法: sort ( array &$array [, int $sort_flags = SORT_RE ...

  6. 一维数组升序排序并输出

    要求 编写程序,输入10个整数存入一维数组,对其进行升序排序后输出. 代码 #include<stdio.h>int main(){int a[10]={0},c,i,o;for(i=0; ...

  7. java 数组升序排序_Java sort()数组排序升序详解

    下面的文章要给大家讲到的就是Java sort()数组排序方面的知识,主要会给大家讲到升序,下面的话就一起来进行一下了解吧. 使用java.util.Arrays类当中的sort()方法对数组进行升序 ...

  8. 用c语言设计一个任意20个数升序排列,编写一个用选择法对一维数组升序排序的函数,并在主函数中调用该排序函数,实现对任意20个整数的排序。...

    满意答案 jgbpz 推荐于 2016.03.19 采纳率:56%    等级:9 已帮助:964人 #include #include #include #define MAXlen 100void ...

  9. php ksort升序,php数组排序之ksort-对数组的元素键名进行升序排序

    php数组排序对数组的元素键名进行升序排序并且保持索引关系,有需要的朋友可以参考一下. 这次这个函数是ksort() 函数按照键名对数组升序排序,为数组值保留原来的键. 可选的第二个参数包含附加的排序 ...

最新文章

  1. 几行代码实现老照片上色复原!
  2. 用Python3解析html的几种操作方式,你都会用吗?
  3. [java进阶]3.slf4j作用及其实现原理
  4. opengl加载显示3D模型md5mesh类型文件
  5. anaconda下载的python在哪_Anaconda下Python环境下载及安装
  6. 2. 性能测试中常见术语集合
  7. 简述linux虚拟内存的概念,Linux进程虚拟内存中的相关概念
  8. 超酷的OpenSource的Javascript Calendar控件
  9. laravel构造函数和中间件执行顺序问题
  10. python画出roc曲线 auc计算逻辑_从scikitlearn(sklearn)的多类数据计算AUC和ROC曲线?...
  11. 关于动态电路响应那些事
  12. 引用 康奈尔大学剪影
  13. C盘清理--模拟器(夜神为例)占用空间越来越大问题解决方案(本方法适用于安装过多个APK,虽然卸载了但是占用仍然很严重的情况)
  14. selenium-java 实现QQ音乐自动登录获取cookie数据,爬取qq音乐会员资源和网易云音乐会员资源。实现任意网站的会员资源爬取
  15. 赛迪智库联合百分点在数博会上发布消费型数字经济报告
  16. Preparatory Class-Day8------函数
  17. 抖音创作者信用分:如何提升信用等级,获取更多机会
  18. 以太坊:Etherscan 使用说明
  19. 巴比特 | 元宇宙每日必读:为什么说韩国政府是目前亚洲政府里最积极、最坚定的元宇宙支持者?...
  20. 专访长亮科技李劲松:17年金融IT服务商的海外新机遇

热门文章

  1. Java的对象关系映射
  2. 6大常用数据分析模型详解,做分析不再没思路
  3. 郑大计算机技术专硕学费,郑州大学2018年硕士研究生学费奖助政策
  4. linux侵入windows2003,Linux下关闭远程windows server 2003
  5. 计算机网络的含义是什么意思,IPv6网络是什么意思?详解IPv6网络的含义
  6. HTML5+CSS大作业——个人相册展示留言博客模板(6页)
  7. 使用ViewServer让Android真机连接Hierarchy Viewer的步骤
  8. Asp.NetMVC利用LigerUI搭建一个简单的后台管理详解(含登录验证)
  9. 《Oracle Java EE编程自学与面试指南》20-05:数据库设计
  10. 人在旅途——》云南8天出行计划清单