首页 > 其他分享 >列表排序

列表排序

时间:2022-09-19 17:23:49浏览次数:73  
标签:get int nums list 列表 hm 排序

1.普通的排序

Arrays.sort(nums);  //数组排序
Collections.sort(list);  //链表排序

2.按照数字出现的频次升序排序,如果频次相同按照数值本身大小降序排序

class Solution {
    public int[] frequencySort(int[] nums) {
        Map<Integer, Integer> hm = new HashMap<Integer, Integer>();
        for(int k:nums){
            if(hm.get(k)==null){
                hm.put(k,0);
            }else{
                hm.put(k,hm.get(k)+1);
            }
        }
        List<Integer> list = new ArrayList<Integer>();
        for (int num : nums) {
            list.add(num);
        }
        Collections.sort(list, (a, b) -> {
            int cnt1 = hm.get(a), cnt2 = hm.get(b);
            return cnt1 == cnt2 ?  b - a:cnt1 - cnt2;
        });
        int length = nums.length;
        for (int i = 0; i < length; i++) {
            nums[i] = list.get(i);
        }
        return nums;
    }
}

 




标签:get,int,nums,list,列表,hm,排序
From: https://www.cnblogs.com/StarZhai/p/16708359.html

相关文章

  • 数字列表与字符串列表相互切换
    数字列表切换为字符串列表1. 1ls=[1,2,3,4,5]23list1=[str(x)forxinls]2.1list2=list(map(str,ls)) 字符串列表切换为数字列表1.1lis......
  • 内部排序
    排序分为内部排序和外部排序,区别在于存储数据的位置。内部排序分别有五类:插入、选择、交换、归并和分配排序。排序过程有两个操作:一是比较关键字大小,二是记录的移动或改......
  • 0-4 测试面试题_16合并两个排序数组_17tcp和udp_18单元集成系统验收回归_19测试和开发
    面试题(除个别外)及部分解析答案来自牛客网https://www.nowcoder.com/exam/interview/以下所述内容并不是百分之百正确,仅供参考。16手写代码:合并两个排序数组Merge1......
  • js数组sort()方法按指定顺序排序
    一、sort介绍数组的sort()方法可以把数组排序,不传参数的默认按字典排序sort()方法还接受一个回调函数,按回调函数内代码逻辑排序该函数要比较两个值,然后返回一个用于说明这......
  • DataTable中数据记录的排序,检索,合并,分页,统计(整理)(转)
    一、排序1获取DataTable的默认视图2对视图设置排序表达式3用排序后的视图导出的新DataTable替换就DataTable(Asc升序可省略,多列排序用","隔开)DataViewdv=dt.Default......
  • 1636. 按照频率将数组升序排序【模拟】
    题目给你一个整数数组nums,请你将数组按照每个值的频率升序排序。如果有多个值的频率相同,请你按照数值本身将它们降序排序。请你返回排序后的数组。难度:简单提示:......
  • 034每个进程占用内存排序
    一、  #ps-aux|head-n2  USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND  root10.00.019633213704?......
  • vue中循环table表格数据,可编辑的列表(新增、删除、修改)
    原文链接:https://blog.csdn.net/qq_24441205/article/details/1261426691.如何循环如下图table表格数据(注:emerResponseDetail为整个列表定义的数据对象)因"作业人员"为......
  • [算法]循环排序
    这类题的特点是给定的数值和下表rank是类似的,其中可能会有一些差异.在设计算法的时候,可以将value值映射到rank上去.其中,选择大于的值最好比rank的最大值+1,这样会避......
  • 1636. 按照频率将数组升序排序
    1636.按照频率将数组升序排序给你一个整数数组 nums ,请你将数组按照每个值的频率升序排序。如果有多个值的频率相同,请你按照数值本身将它们降序排序。 请你返......