LeetCode 热题 HOT 100 (041/100)【宇宙最简单版】

【信息科学与工程学】【广告科学】第四十四篇 广告平台投放和广告计费类算法01 全行业的中国企业广告投放模型总表。行业分类依据《国民经济行业分类》(GB/T 4754—2017)的门类/大类 ,产品层参考"主营产品统计代码"行业—产品映射 ,平台算法以巨量引擎、腾讯广告等官方文档为硬支撑 ,合规部分严格对齐《互联网广告管理办法》以及2026年市场监管部门最新合规提示 。编号类型(门类)行业(大类)企业及产品内容列表投放模型投放平台投放人群欲望激发维度面向人群模式(地域/文化/年龄/角色)001A 农林牧渔01 农业北大荒/中粮:五常大米、面粉、食用油、杂粮品牌曝光 + 电商转化双轨(C 阅读详情

【优先级队列】No. 313 第 n 个超级丑数【中等】👉力扣对应题目指路

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦
欢迎关注、订阅专栏 【力扣详解】谢谢你的支持!


⭐ 题目描述:给你一个整数 n 和一个整数数组 primes,表示质因数集合,返回第 n 个超级丑数

  • 超级丑数是一个正整数,所有质因数都出现在 primes 数组中

示例:

示例 1:
  • 输入: n = 12, primes = [2,7,13,19]
  • 输出: 32
  • 解释: 超级丑数序列为 [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32]
示例 2:
  • 输入: n = 1, primes = [2,3,5]
  • 输出: 1

🔥 思路:这道题的关键在于高效地生成第 n 个超级丑数。由于直接暴力模拟顺序较复杂,可以通过 优先队列 实现高效计算

  1. 整体思路:按顺序动态生成超级丑数
  • 将所有可能的超级丑数按顺序生成,每次取最小的丑数
  • 使用一个堆(小根堆)存储候选超级丑数,并通过堆顶保证每次取出的丑数是当前最小的
  • 用一个集合去重,避免重复计算
  1. 具体实现步骤:
  • 初始化一个堆,放入第一个超级丑数 1
  • 每次从堆中取出当前最小的丑数,加入到结果集合中
  • 用取出的丑数乘以所有质因数,生成新的丑数并放入堆中
  • 重复这个过程,直到取出第 n 个丑数

🔨 代码实现

from heapq import heappop, heappush


class Solution:
    def nthSuperUglyNumber(self, n: int, primes: List[int]) -> int:
        # 优先队列小根堆实现动态规划
        heap = [1]  # 初始堆
        seen = {1}  # 用于去重的集合
        ugly = 0  # 第 n 个丑数
        
        for _ in range(n):
            # 从堆中取出最小的丑数 
            # 根据最小堆的特性:第 n 次弹出的就是所需值
            ugly = heappop(heap)
            
            # 根据当前丑数生成下一个丑数
            for prime in primes:
                new_ugly = ugly * prime
                if new_ugly not in seen:
                    seen.add(new_ugly)
                    heappush(heap, new_ugly)
        
        return ugly

复杂度分析:

  • 时间复杂度:O(n * len(primes) * log k)✨
    • 堆的插入和弹出操作的时间复杂度为 O(log k),其中 k 是堆的大小
    • 对于每个超级丑数,我们需要遍历所有的质因数 len(primes)
  • 空间复杂度:O(n),堆和去重集合的大小最多为✨

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦
🔥 LeetCode 热题 HOT 100

STM32铅酸蓄电池内阻测试仪的交流阻抗测量与数据采集优化 本文深入探讨了基于STM32的铅酸蓄电池内阻测试仪设计,重点解析了交流阻抗测量原理与数据采集优化方案。通过采用1kHz交流小信号注入和数字相敏检波技术,实现对电池欧姆内阻的无损精准测量,并详细介绍了硬件前端调理、ADC过采样及系统标定等关键优化手段,有效提升了测量精度与稳定性。 阅读详情

相关推荐

滑模控制实战:用Python从零实现SMC算法(附完整代码)

本文通过Python实战,从零详解滑模控制(SMC)算法的核心原理与代码实现。文章聚焦于一阶系统,使用NumPy和Matplotlib逐步构建控制器,并针对SMC固有的抖振问题,详细讲解了边界层法的原理与实现,提供了完整的代码和参数调优指南,帮助读者直观理解并掌握这一鲁棒性极强的非线性控制方法。

weixin_29285605的博客 465

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等) 题目描述: 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: - s = s1 + s2 + ... + sn - t = t1 + t2 + ... + tm - |n - m| <= 1 - 交错 是 s1 + t

huayimenghan的博客 207

ESP32S3编译micropython固件

编译ESP32芯片的micropython固件

m0_73253860的博客 2553

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 365

从圆形到椭圆:CenterNet中高斯热图半径的自适应优化策略

本文深入探讨了CenterNet目标检测模型中高斯热图生成策略的优化,针对传统圆形高斯核在处理长宽比差异大目标时的局限性,提出了自适应椭圆高斯核的解决方案。通过数学推导和代码实战,详细阐述了如何根据目标边界框尺寸动态计算椭圆长短轴半径,生成更贴合目标几何形状的热图监督信号,从而有效提升模型,尤其是对无人机、车辆等不规则目标的定位精度。

alice7model的博客 985

【2026最新版】python点云处理算法汇总(长期更新版)

python点云处理算法整理。博客长期更新,最近一次更新时间为:2026年10月4日。

点云侠的博客 42万+

LeetCode 每日一题 2026/11/2-2026/11/8

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步

AlphaTao的博客 175

FCTA/FCTB 前方交通穿行预警/制动系统技术规范

FCTA&FCTB前方交叉路口预警制动系统是针对十字路口和停车场等"鬼探头"场景设计的驾驶辅助系统。系统在自车速度0-40km/h范围内工作,通过角雷达和摄像头检测侧向来车.

未知艺术家的博客 739

Hash表:两数之和、字母异位词分组、最长连续序列 [力扣 Hot100]

三道高频哈希表应用题:两数之和(利用HashMap快速查找补数)、字母异位词分组(排序后作为键分组)、最长连续序列(通过HashSet去重并仅从序列起点扩展)。核心思想均为借助哈希结构优化查找效率,避免重复计算。同时提及双指针等其他解法思路,体现算法设计中“空间换时间”的典型策略。

2403_87560480的博客 218

大厂面经:京东大数据面试题及参考答案(3万字长文)

Kafka是一个开源的分布式流处理平台,由 LinkedIn 开发并在 2011 年贡献给 Apache 软件基金会。高吞吐量:能够处理大量的数据流,适合实时数据管道。持久性:数据存储在磁盘上,确保数据不丢失。容错性:通过数据复制提供高可用性。扩展性:支持水平扩展,易于增加更多节点。Kafka 的核心概念Topic:逻辑上的数据流,可以理解为主题。Producer:生产数据的应用程序。Consumer:消费数据的应用程序。Broker:Kafka 集群中的服务器节点。Partition。

大模型大数据攻城狮的专栏 863

Hugging Face快速入门(重点讲解模型(Transformers)和数据集部分(Datasets))

1. Hugging Face是什么,提供了哪些内容 2. Hugging Face模型的使用(Transformer类库) 3. Hugging Face数据集的使用(Datasets类库)

iioSnail的博客 8万+

力扣73 矩阵置零

该解法通过标记含0的行和列来实现矩阵置零。遍历矩阵,用布尔数组记录有0的行和列;再遍历一次,若当前行或列被标记,则置为0。时间复杂度O(mn),空间复杂度O(m+n)。

Pniubi的博客 22

uniapp - 解决真机调试报错 request:fail abort statusCode:-1 java.security.cert.CertPathValidatorException: Tr

uni-app,真机调试报错,app端平台,安卓Android,安卓App发布线上报错,打包后接口请求失效了,api接口报错,真机运行安卓app时接口不通且报错,request:failabortstatusCode:-1java.security.cert.CertPathValidatorException:Trustanchorforcertificationpathnotfound.,真机调试,苹果ios真机报错,Uniapp打包到app后报错,uni-app真机调试报错,服务器

🏆 前端领域优质创作者 1万+

LeetCode Hot 100 二叉树专题(三):BST 二叉搜索树与右视图(Java)

本专题主线:三题(98 / 230 / 199)共用两把钥匙——BST 的中序序列严格递增,以及遍历中的"层"与"深度"标记。看懂这两点,三题共用一套模板。 结构约定:每题统一分三部分——①题目分析与解题思路(含易错点辨析);②常见解法(附代码)及讲解;③知识点总结。

2401_88612756的博客 662

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LeetCode 3926. 统计有效单词的出现次数【分组循环】

核心思想:用分组循环,一趟遍历字符串,把一个个单词切出来,丢进哈希表统计频次。,先把所有片段拼接成完整文本字符串。,依次返回每个单词在文本里的出现次数。难点:内层循环的判断条件,区分。

2503_92676540的博客 170

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

力扣第526场周赛心得理解

思路:因为题目要求尽可能求出最小的最大值,而满足要求最小公约数为2,作为题目要求最小的最大值,先去求出它的最大公约数再通过value判断最左边是否大于0,以及value本身是否大于0,而index的位置只能为中间或者最右边,所以最后输出只能是value本身或者在这个基础上加相隔相应距离次数的结果。两个整数,是指将第二个整数的所有十进制数位拼接在第一个整数的所有十进制数位之后。如果不存在这样的数组,返回 -1。4097. 合并整数后的最小值。返回所有合并后得到的整数中的。合并,依此类推,直到将。

目前主攻编程,目标是把屏幕上的红波浪线变成流畅运行的程序♪(^∀^●)ノシ 205

【算法学习笔记】LeetCode 15:三数之和(排序 + 双指针)

使用sort()对数组进行排序。理解排序后双指针的移动原理。使用外层循环固定一个数字。使用左右指针寻找另外两个数字。使用continue和while实现去重。理解的执行逻辑。将三层循环优化为排序 + 双指针,使时间复杂度从 O(n³) 降低到 O(n²)。

aqiu111111的博客 158

LeetCode100 15. 三数之和

本题通过排序+双指针优化三数之和。先对数组排序,外层遍历固定第一个数,内层用左右指针查找另两个数,使三数之和为0。通过剪枝(当前数>0则终止)和去重(跳过重复元素)提升效率。相比暴力或哈希法,该方法时间复杂度为O(n²),空间O(1),更高效优雅。

Shaoxingzong的博客 323

LeetCode hot 100 — 226. 翻转二叉树 | 101. 对称二叉树

自己稀里糊涂写了一版本居然还对了,我觉得我的思想就是很简单,这里就是要交换每一个节点的左右子树,所以套用了一下之前的中序遍历的迭代套路。一直在return False,但是没有给真正的正确答案一个出口(注意递归调用中出口 / 返回值很重要,或者说是最重要的)差一步美满....用的递归的写法,差一点点就满分了,先给出自己最开始写的代码。这道题的本质是对每一个节点执行相同的操作,并且交换哪个节点在先并不重要。你可以运用递归和迭代两种方法解决这个问题吗?,翻转这棵二叉树,并返回其根节点。给你一个二叉树的根节点。

Canmido的博客 134

力扣3无重复字符的最长字串(滑动窗口)

该题使用滑动窗口+哈希集合优化,通过复用Set实现O(n)时间复杂度。若每轮循环都新建HashSet,虽逻辑正确,但需重复插入删除,退化为O(n²),导致超时。原解法利用窗口右移时仅移除左端旧字符、扩展右边界,避免重复操作,实现高效遍历。

Pniubi的博客 230

LeetCode 11 - 20

LeetCode 题库 11 - 20

djhws144的博客 235

LeetCodehot100+背包问题+虚拟线程

虚拟线程虽能高效利用CPU,但滥用会导致资源耗尽。错误用法中,瞬间创建1万个虚拟线程并发调用慢速下游服务,虽不占用物理线程,却引发网络连接、内存和下游服务的全面崩溃。根本原因在于虚拟线程仅缓解“等待”成本,未解决“资源”瓶颈。正确做法是在IO边界使用Semaphore限流,如设为100,控制并发数,使多余请求在堆内存中廉价挂起,保护系统稳定。虚拟线程需配合背压机制,才能真正发挥其高并发优势。

记录大学学习学习成长过程,欢迎各位一起交流 419

力扣438.找到字符串中所有字母异位词

该题通过滑动窗口与字符计数数组解决。用两个长度为26的数组 sCount 和 pCount 分别统计当前窗口和目标串 p 中各字母出现次数。初始化窗口后,若两数组相等,则记录起始位置;随后滑动窗口,左移时减去旧字符计数,右移时加上新字符计数,持续比较是否异位词。时间复杂度 O(n),空间复杂度 O(1)。

Pniubi的博客 232

LeetCode 面试经典 150_数学_阶乘后的零(133_172_C++_中等)

LeetCode 面试经典 150_数学_阶乘后的零(133_172_C++_中等) 题目描述: 给定一个整数 n ,返回 n! 结果中尾随零的数量。 提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1

huayimenghan的博客 116

LeetCode //C - 1314. Matrix Block Sum

This solution computes the block sum for each element in a matrix using a 2D prefix-sum matrix. The prefix-sum matrix allows calculating the sum of any submatrix in constant time. For each element mat[i][j], the block sum is derived by adjusting the bounda

Made in Code 347

力扣 第527场周赛练习理解

1.先判断两个字符串中的字符出现次数是否相同,如果不同,那证明这两个无论怎么翻转都不可能完成问题,即return 0。1.先判断两个字符串中的字符出现次数是否相同,如果不同,那证明这两个无论怎么翻转都不可能完成问题,即return 0。3.在target中从往前循环找到第一个不是前者大于后者的即可证明它不是降序,而这个位置一定是最小min_i的位置。3.在target中从往前循环找到第一个不是前者大于后者的即可证明它不是降序,而这个位置一定是最小min_i的位置。两个字符串中其余位置的字符均相同。

目前主攻编程,目标是把屏幕上的红波浪线变成流畅运行的程序♪(^∀^●)ノシ 118

LeetCode100+java面经+DDD领域驱动设计理解

结合测开、全栈与Agent方向,建议以“盛最多水的容器”和“两数之和”为切入点,掌握双指针与哈希思想,夯实算法基础。通过策略模式实现支付模块解耦,提升代码可维护性;运用DDD领域驱动设计重构业务逻辑,实现充血模型与事件驱动,降低系统耦合。最终构建一个融合算法、架构与设计模式的全栈项目,为测开、全栈及Agent开发岗位提供有力支撑。

记录大学学习学习成长过程,欢迎各位一起交流 881
上一篇: LeetCode 热题 HOT 100 (040/100)【宇宙最简单版】
下一篇: 【极速版 -- 大模型入门到进阶】大模型如何运作?
CODE_RabbitV
博客等级 码龄7年 2931粉丝 218原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值