【LeetCode】每日一题 2024_12_15 数组大小减半(哈希、排序)

前言

每天和你一起刷 LeetCode 每日一题~

小聊两句

前几天的时候决定每天学点前端,然后总结一个前端速成的必备知识系列,结果学了几天发现前端内容博大精深,一时半会儿是更新不出来了,慢慢积累总结,会有更新的那一天的

LeetCode 启动!

题目:K 次乘运算后的最终数组 I

代码与解题思路

先读题:题目给了一个数组,我们可以选择一个整数的集合并将他们全部删除,让我们求出用最少的集合数将数组删到一半及以下的大小

核心思路:怎么样删的更快?找最大的整数集合依次删除;怎么找到最大的整数集合?用哈希计数;怎么依次删除?排序。

所以,整个流程就是,先计数,再排序,最后依次删除整数集合,达成题目条件返回结果即可,代码如下:

go 复制代码
func minSetSize(arr []int) int {
    nums, sum := make([]int, 100010), 0
    for _, v := range arr {
        nums[v]++
        sum++
    }
    slices.Sort(nums)
    slices.Reverse(nums)
    cnt := sum
    for i, v := range nums {
        cnt -= v
        if cnt <= sum/2 {
            return i+1
        }
    }
    return -1
}

每天进步一点点,我们明天不见不散~

可以和我刷一辈子的每日一题吗?

一题一题,积累起来就是一辈子。

相关推荐
雾月5525 分钟前
LeetCode 1292 元素和小于等于阈值的正方形的最大边长
java·数据结构·算法·leetcode·职场和发展
hnlucky31 分钟前
redis 数据类型新手练习系列——Hash类型
数据库·redis·学习·哈希算法
OpenC++1 小时前
【C++QT】Buttons 按钮控件详解
c++·经验分享·qt·leetcode·microsoft
知来者逆2 小时前
计算机视觉——速度与精度的完美结合的实时目标检测算法RF-DETR详解
图像处理·人工智能·深度学习·算法·目标检测·计算机视觉·rf-detr
阿让啊2 小时前
C语言中操作字节的某一位
c语言·开发语言·数据结构·单片机·算法
এ᭄画画的北北2 小时前
力扣-160.相交链表
算法·leetcode·链表
爱研究的小陈3 小时前
Day 3:数学基础回顾——线性代数与概率论在AI中的核心作用
算法
渭雨轻尘_学习计算机ing3 小时前
二叉树的最大宽度计算
算法·面试
BB_CC_DD4 小时前
四. 以Annoy算法建树的方式聚类清洗图像数据集,一次建树,无限次聚类搜索,提升聚类搜索效率。(附完整代码)
深度学习·算法·聚类
梁下轻语的秋缘5 小时前
每日c/c++题 备战蓝桥杯 ([洛谷 P1226] 快速幂求模题解)
c++·算法·蓝桥杯