LeetCode刷题11-数组去重和排序

package com.example.demo.leetcode.case202208;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
import java.util.stream.Collectors;

/**
 * 功能描述
 *
 * @author ASUS
 * @version 1.0
 * @Date 2022/8/6
 */
public class Main2022080606 {

    /*
    输入有2行,第1行为一个正整数,表示需要输入n个数。(n<=100且输入的数不大于1000)。第2行有n个用空格隔开的正整数。
    输出也是两行,第1行为一个正整数j,表示去重后剩余有j个数。第2行为j个用空格隔开的正整数,为上述输入数去重后从小到大已排好序的这样一个序列。
    输入
    10
    20 40 32 67 40 20 89 300 400 15
    输出
    8
    15 20 32 40 67 89 300 400
    */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 获取输入信息
        String total = scanner.nextLine();
        String str = scanner.nextLine();

        // 去重后元素总数
        System.out.println(Arrays.asList(str.split(" "))
                .stream()
                .distinct()
                .collect(Collectors.toList()).size());

        // 排序后数据
        System.out.println(Arrays.asList(str.split(" "))
                .stream()
                .distinct()
                .sorted(Comparator.comparingInt(Integer::parseInt))
                .collect(Collectors.joining(" ")));

    }

}

 

package com.example.demo.leetcode.case202208;

import java.util.*;
import java.util.stream.Collectors;

/**
 * 功能描述
 *
 * @author ASUS
 * @version 1.0
 * @Date 2022/8/6
 */
public class Main2022080607 {
    /*
    给定一个乱序的数组,数组大小不超过100.删除所有的重复元素,使得每个元素只出现一次,

    并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序。

    输入 1,3,3,3,2,4,4,4,5

    输出 3,4,1,2,5

    */
    public static void main(String[] args) {
        // 获取输入信息
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        // 记录元素以及重复个数
        TreeMap<String, Integer> map = new TreeMap<>();
        LinkedHashSet<String> elementList = new LinkedHashSet<>();
        for (String skey : str.split(",")) {
            if (elementList.contains(skey)) {
                map.put(skey, map.get(skey) + 1);
                continue;
            }
            map.put(skey, 1);
            elementList.add(skey);
        }

        // 根据元素个数 由高到低排序
        System.out.println(elementList.stream()
                .sorted(Comparator.comparingInt(map::get).reversed())
                .collect(Collectors.joining(",")));
    }
}

 

posted @ 2022-08-06 18:15  chch213  阅读(139)  评论(0编辑  收藏  举报