我是靠谱客的博主 彪壮乌冬面,最近开发中收集的这篇文章主要介绍OD华为机试 3,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

去重排序

描述

给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按
照出现的次数从高到低进行排序,
相同出现次数按照第一次出现顺序进行先后排序。

1 3 3 3 2 4 4 4 5
3 4 1 2 5

法一

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] str = in.nextLine().split(" ");
        int[] ints = new int[str.length];
        for (int i = 0; i < ints.length; i++) {
            ints[i] = Integer.parseInt(str[i]);
        }
        LinkedHashMap<Integer, Integer> map = new LinkedHashMap<>();
        for (int i = 0; i < ints.length; i++) {  // 统计数字出现的频次
            map.put(ints[i], map.getOrDefault(ints[i], 0) + 1);
        }
        // Map按value排序,先将map转为list,再排序list
        LinkedList<Map.Entry<Integer,Integer>> list = new LinkedList<>(map.entrySet());
        list.sort((o1,o2) -> o2.getValue() - o1.getValue());
        for(int i = 0 ; i < list.size() ;i++){
            Map.Entry<Integer , Integer> entry = list.get(i);
            if(i != list.size()-1){
                System.out.print(entry.getKey() + " ");
            }else{
                System.out.print(entry.getKey() );
            }
        }
    }
}

最后

以上就是彪壮乌冬面为你收集整理的OD华为机试 3的全部内容,希望文章能够帮你解决OD华为机试 3所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部