当前位置: 首页 > article >正文

Leetcode:1338

1,题目

2,思路

  • 创建数字为key,数字出现次数为value的哈希表
  • 获取哈希的value,用list装好
  • 将list从大到小排序(从最大的开始拿)
  • 返回最小的次数

3,代码

import java.util.*;

public class Leetcode1338 {
    public static void main(String[] args) {
        System.out.println(new Solution1338().minSetSize(new int[]{3, 3, 3, 3, 5, 5, 5, 2, 2, 7}));
    }
}

class Solution1338 {
    public int minSetSize(int[] arr) {
        int len = arr.length / 2;//获取折半长度
        Map<Integer, Integer> map = new HashMap<>();
        List<Integer> arrVaule = new ArrayList<>();
        for (int i = 0; i < arr.length; i++) {//创建哈希表
            if (map.containsKey(arr[i])) {
                int n = map.get(arr[i]);
                map.put(arr[i], ++n);
            } else map.put(arr[i], 1);
        }
        Set<Integer> set = map.keySet();
        for (Integer i : set) {//创建接收哈希表value的逆序表
            arrVaule.add(map.get(i));
        }
        arrVaule.sort((Integer o1, Integer o2) -> o2 - o1);//降序排序
        int conunt = 0;
        int nums = 0;
        for (Integer i : arrVaule) {//从最长次数开始找,不满足nums>len要求循环继续且返回次数+1
            nums += i;
            conunt++;
            if (nums >= len) {
                break;
            }

        }
        return conunt;
    }
}


http://www.kler.cn/a/441051.html

相关文章:

  • 级数论存在重大错误的原因:中学数学对无穷数列的认识存在重大错误
  • C++模板初识
  • 跨境数据传输问题常见解决方式
  • 05-机器学习-数据标注
  • Linux线程安全
  • 马尔科夫模型和隐马尔科夫模型区别
  • vim save
  • SSM虾米音乐项目6--后台专辑模块的修改和删除
  • 2024安装hexo和next并部署到github和服务器最新教程
  • 【windows-bat脚本】-修改系统时间
  • 实时数仓中涉及更新历史数据(如小时、天、月的汇总数据)时,数据库是否支持 UPSERT(存在更新,否则插入)会显著影响解决方案。
  • 白平衡和色彩偏移使用(富士)
  • 2025erp系统开源免费进销存系统搭建教程/功能介绍/上线即可运营软件平台源码
  • 数据可视化-2. 条形图
  • 流程图(一)利用python绘制弦图
  • 如何使用Nginx Proxy Manager实现反向代理与SSL支持高效管理网络服务
  • 读心术小游戏(附加源码)
  • 淘宝评论API接口:解锁电商数据洞察的钥匙
  • iOS开发 UIAlertView与UIActionSheet替换方案之SDAlertView与SDActionSheet
  • 【我的Android进阶之旅】使用Kotlin 代理/委托优雅地处理接口空实现:干掉接口中所有需要强制实现的但是无用的空方法实现!
  • 优化算法中的凸函数
  • linux下观察进程捕获信号的情况
  • 人工智能学习总结blog3(Torch和PyTorch)
  • STM32 水质水位检测项目(硬件架构)及(软件架构)
  • Ansible自动化运维 技术与最佳实践
  • [工具升级问题] 钉钉(linux版)升级带来的小麻烦