Leetcode3066. 超过阈值的最少操作数 II

课程1:认识Asp.net Core Web API 本文是《.Net Core从零学习搭建权限管理系统》教程专栏的导航站(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)专栏介绍:以实战为线索,基于.Net 7 + REST + Vue、前后端分离,不依赖任何第三方框架,从零一步一步讲解权限管理系统搭建。专栏适用于人群:Web后端开发人员Web API是一个很广泛的概念,Asp.net Core Web API是.NET框架用于创建RESTful风格的项目、用于轻松构建可供多个客户端访问的HTTP服务。1、支持RestFul风格编程; 阅读详情

Every day a Leetcode

题目来源:3066. 超过阈值的最少操作数 II

解法1:模拟

两个 int 类型的数 x 和 y 做操作:min(x, y) * 2 + max(x, y),得到的结果会超出 int 范围。

代码:

/*
 * @lc app=leetcode.cn id=3066 lang=cpp
 *
 * [3066] 超过阈值的最少操作数 II
 */

// @lc code=start
class Solution
{
public:
    int minOperations(vector<int> &nums, int k)
    {
        vector<long long> LLnums;
        for (int &num : nums)
            LLnums.push_back((long long)num);
        int count = 0;
        while (*min_element(LLnums.begin(), LLnums.end()) < k && LLnums.size() >= 2)
        {
            auto it = min_element(LLnums.begin(), LLnums.end());
            long long x = *it;
            LLnums.erase(it);
            it = min_element(LLnums.begin(), LLnums.end());
            long long y = *it;
            LLnums.erase(it);
            count++;
            long long add = min(x, y) * 2 + max(x, y);
            LLnums.push_back(add);
        }
        return count;
    }
};
// @lc code=end

结果:

在这里插入图片描述

解法2:优先队列

用一个最小堆模拟更方便。

代码:

typedef long long LL;

class Solution
{
public:
    int minOperations(vector<int> &nums, int k)
    {
        priority_queue<LL, vector<LL>, greater<>> pq;
        for (int &num : nums)
            pq.push((LL)num);

        int ans = 0;
        while (pq.top() < k)
        {
            LL x = pq.top();
            pq.pop();
            LL y = pq.top();
            pq.pop();
            pq.push(min(x, y) * 2 + max(x, y));
            ans++;
        }
        return ans;
    }
};

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(nlogn),其中 n 是数组 nums 的元素个数。

空间复杂度:O(n),其中 n 是数组 nums 的元素个数。

[QMT量化交易小白入门]-二、如何用miniQMT获取沪深A股的板块列表、历史行情数据和实时行情数据 本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。 阅读详情

相关推荐

从科研小白到动物行为分析:我的DeepLabCut 3.0安装与初体验全记录

本文记录了从科研小白到成功安装并使用DeepLabCut 3.0进行动物行为分析的全过程。详细介绍了Anaconda环境配置、CUDA版本选择、DeepLabCut安装步骤及验证方法,并分享了初体验中的实用技巧和跨学科研究心得,为生物研究者提供了AI工具应用的实战指南。

weixin_30235225的博客 403

LeetCode 100231.超过阈值的最少操作数 I

解释:数组中的所有元素都大于等于 1 ,所以不需要对 nums 做任何操作。如果nums的长度为n,此算法时间复杂度为O(n),空间复杂度为O(1)。如果nums的长度为n,此算法时间复杂度为O(n),空间复杂度为O(1)。解释:第一次操作后,nums 变为 [2, 11, 10, 3]。输入:nums = [2,11,10,1,3], k = 10。输入:nums = [1,1,2,4,9], k = 1。输入:nums = [1,1,2,4,9], k = 9。

tus00000的博客 474

金蝶云星空v8.0私有化部署与cpolar内网穿透:构建企业级远程ERP访问通道

本文详细介绍了金蝶云星空v8.0企业版的私有化部署流程与cpolar内网穿透技术,帮助企业构建安全高效的远程ERP访问通道。从系统环境准备、SQL Server配置到内网穿透安全加固,提供全流程实战指导,助力企业实现本地部署与远程办公的无缝衔接。

weixin_28736335的博客 377

Leetcode 第 125 场双周赛题解

Leetcode 第 125 场双周赛题解

ProgramNovice的博客 1102

基于PLC智能立体车库控制系统设计

摘要 本系统设计以三层立体车库为研究对象,通过对立体车库的原理分析、动作流程设计和一系列的软硬件设计,达到立体车库自动化控制的目的。系统采用可编程控制器作为立体车库控制系统的控制单元,实现该系统的工艺要求,通过程序仿真调试,完成系统的各种动作要求,达到自动控制的目的。系统设计分为总体设计、硬件设计以及软件设计。按照立体车库控制系统的控制策略进行图纸设计;重点分析工艺流程图,对立体车库控制系统进行程序编译和MCGS上位机调试,通过系统的调试和修改,达到了基本控制的要求。系统设计明确了工艺要求,确定

DX884164131的博客 3601

Beyond the Spec: Decoding Samsung‘s LPDDR6 Sub-Channel and Wide-NRZ Innovations

本文深入解析了三星LPDDR6内存的两大核心技术:Sub-Channel架构与Wide-NRZ信号技术。Sub-Channel架构通过将物理通道划分为多个独立子通道,实现了内存访问的细粒度控制,大幅提升了能效,尤其适用于AI与边缘计算场景。Wide-NRZ则通过增加并行数据线而非采用PAM4,在提升带宽的同时保持了优异的信号完整性与低功耗特性。

weixin_29209801的博客 136

LeetCode1283. 使结果不超过阈值的最小除数

力扣 解题思路: 1.暴力求解(超出时间限制) 注意向上取整 2.优化(二分查找) 代码1:暴力 class Solution { public: int smallestDivisor(vector<int>& nums, int threshold) { int sz = nums.size(); int div = ...

向未来❀去探索 的博客 360

3DGS 2025实战指南:从安装到训练全流程解析

本文提供了3D Gaussian Splatting (3DGS) 从零开始的完整实战指南。详细解析了使用gsplat库进行环境配置、依赖安装(包括pycolmap和fused-ssim)、数据准备与COLMAP处理、核心训练流程及参数调优,并探讨了2025年3DGS在动态场景、可控编辑等领域的最新进展,帮助开发者快速掌握这一前沿3D重建技术。

b3n4m5q6w7的博客 359

Leetcode 3066. Minimum Operations to Exceed Threshold Value II

Leetcode 3066. Minimum Operations to Exceed Threshold Value II

codename_cys的博客 527

【OpenClaw企业级智能体实战】第09篇:OpenClaw金融投研实战:17个场景+完整代码,打造专属数字研究员

金融投研面临信息过载、流程重复、数据安全合规三大核心痛点,OpenClaw作为本地部署的新一代AI智能体,凭借“长期记忆+主动执行+数据不出域”的优势,成为券商分析师集体追捧的效率工具。本文基于8家头部券商公开研报,拆解OpenClaw在金融投研的17个核心应用场景(信息处理、研报撰写、量化策略、流程自动化),详解原理、技术选型、实操流程,并提供可直接运行的完整代码与执行结果。文章兼顾新手入门与进阶提升,强调安全隔离部署与幻觉防范,读者可按步骤搭建专属投研智能体,将信息处理、数据整理等重复工作效率提升80%

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 678

4.3 Langfuse 集成实战:追踪 OpenAI、LangChain 和 LangGraph 应用

本文介绍了如何将Langfuse集成到不同类型的AI应用中,包括原生OpenAI、LangChain和LangGraph应用。主要内容包括: 两种集成模式:手动追踪(精确控制)和自动追踪(通过回调机制) 三种应用场景的集成方案: 原生OpenAI应用:使用langfuse.trace()手动记录对话流程、LLM调用和工具执行 LangChain应用:通过LangfuseCallbackHandler自动追踪Agent执行过程 LangGraph应用:与LangChain相同的自动追踪方式,可可视化节点和状态

yonggeit的博客 3305

240428.LeetCode——3065.超过阈值的最少操作数I

可能是对力扣的恐惧吧,加上之前看的题解都是几十上百行代码,总认为力扣的题目很难,我现在的刷题顺序其实是筛选:算法:通过率降序;目前是第三题。初看的时候以为蛮难的,被示例输出误导了,因为每轮之后的数组大小都不一样,甚至还以为要用到动态数组规划、冒泡排序等等......后面发现想多了,用几个变量就行(甚至后面发现练几个变量都不用,一轮循环遍历就行),上面的C语言I是我自己想的,感觉还是有了做题思维了......有时候思维没有跳转,对于输出和输入和实现过程的关系没有把握清楚。

Rain050415的博客 926

用miniconda建立PyTorch、Keras、TensorFlow三个环境

如果还没有安装Miniconda,请从[Miniconda官网](https://docs.conda.io/en/latest/miniconda.html)下载合适的版本并进行安装。如果遇到问题,可以通过编辑`~/.condarc`文件来临时禁用某个源,或者通过`conda config --remove channels`命令来移除配置的镜像源。要切换到不同的环境,先使用`conda deactivate`命令退出当前环境,再用`conda activate 环境名称`命令激活另一个环境。

数字人生 2464

【力扣每日一题】LeetCode 3066: 超过阈值的最少操作数 II

本题通过贪心策略和堆数据结构高效解决了数组元素逐步提升的任务。优先队列是解决这类问题的关键,它在动态维护数组最小值时表现优异。对于包含数百万元素的大规模数据,代码的时间和空间复杂度表现良好,是一道经典的堆应用问题。

qq_17405059的博客 522

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LeetCode:3066. 超过阈值的最少操作数 II(优先级队列 Java)

简单题,维护两个最小值,所以小顶堆poll两下即可。

Cosmoshhhyyy的博客 530

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

(LeetCode)3066. 超过阈值的最少操作数 II (优先队列、模拟)

【代码】(LeetCode)3066. 超过阈值的最少操作数 II (优先队列、模拟)

记录一些刷过的题并分享学习心得 571

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LeetCode 3066. 超过阈值的最少操作数 II

给你一个下标从开始的整数数组nums和一个整数k。numsxyxynums只有当nums至少包含两个元素时,你才可以执行以上操作。你需要使数组中的所有元素都大于或等于k,请你返回需要的操作次数。2第一次操作中,我们删除元素 1 和 2 ,然后添加 1 * 2 + 2 到 nums 中,nums 变为 [4, 11, 10, 3]。第二次操作中,我们删除元素 3 和 4 ,然后添加 3 * 2 + 4 到 nums 中,nums 变为 [10, 11, 10]。

m0_56090828的博客 552

LeetCode 3066.超过阈值的最少操作数 II:模拟 - 原地建堆O(1)空间 / 优先队列O(n)空间

LeetCode 3066.超过阈值的最少操作数 II:模拟 - 原地建堆O(1)空间 / 优先队列O(n)空间 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 一次操作中,你将执行: 选择 nums 中最小的两个整数 x 和 y 。 将 x 和 y 从 nums 中删除。 将 min(x, y) * 2 + max(x, y) 添加到数组中的任意位置。 注意,只有当 nums 至少包含两个元素时,你才可以执行以上操作。 你需要使数组中的所有元素都大于或等于 k ,请你返回需要的 最

<font color="Pink">Tisfy的博客</font> 1191

【Leetcode 每日一题】3066. 超过阈值的最少操作数 II

Leetcode 每日一题 - 超过阈值的最少操作数 II

冠位优化 961

LeetCode 3066.超过阈值的最少操作数II

第一次操作中,我们删除元素 1 和 2 ,然后添加 1 * 2 + 2 到 nums 中,nums 变为 [4, 11, 10, 3]。第二次操作中,我们删除元素 3 和 4 ,然后添加 3 * 2 + 4 到 nums 中,nums 变为 [10, 11, 10]。输入:nums = [2,11,10,1,3], k = 10。输入:nums = [1,1,2,4,9], k = 20。第一次操作后,nums 变为 [2, 4, 9, 3]。第二次操作后,nums 变为 [7, 4, 9]。

tus00000的博客 201

leetcode 3066. 超过阈值的最少操作数 II 中等

第一次操作中,我们删除元素 1 和 2 ,然后添加 1 * 2 + 2 到 nums 中,nums 变为 [4, 11, 10, 3]。第二次操作中,我们删除元素 3 和 4 ,然后添加 3 * 2 + 4 到 nums 中,nums 变为 [10, 11, 10]。此时,数组中的所有元素都大于等于 10 ,所以我们停止操作。此时,数组中的所有元素都大于等于 20 ,所以我们停止操作。第一次操作后,nums 变为 [2, 4, 9, 3]。第二次操作后,nums 变为 [7, 4, 9]。

2401_88085478的博客 372

【数据结构-堆】力扣3066. 超过阈值的最少操作数 II

解释:第一次操作中,我们删除元素 1 和 2 ,然后添加 1 * 2 + 2 到 nums 中,nums 变为 [4, 11, 10, 3]。第二次操作中,我们删除元素 3 和 4 ,然后添加 3 * 2 + 4 到 nums 中,nums 变为 [10, 11, 10]。解释:第一次操作后,nums 变为 [2, 4, 9, 3]。输入:nums = [2,11,10,1,3], k = 10。输入:nums = [1,1,2,4,9], k = 20。第四次操作后,nums 变为 [33]。

sjsjs11的博客 1061

Leetcode 3066. 超过阈值的最少操作数 II

希望大家可以多掌握一些现成的数据结构,例如堆,栈之类的,这样解题速度会越来越快,越来越简洁!今天题目的考点十分清晰,就是考察我们对于最小堆的应用,然后对题目的要求进行模拟就可以得出答案了,值得一提到是,数据范围比较大,因此我们要注意将数据类型开成long long!

pt_224540的博客 189

超过阈值的最少操作数 II

首先对数组 nums 进行排序,然后从数组 nums 中取两个最小值 min 和 max,计算 min∗2+max的值,把计算得到的值添加到队列尾。在后面的操作中我们比较数组的下一个数据和队列头的数据,取其中的两个最小值 min 和 max,计算 min∗2+max的值,然后把它添加到队列尾。每次操作后,会减少一个数,当数据量小于2时,则无法操作,如果数组nums中的数据总共有 n 个, 最多操作 n−1 次一定能够找到答案。队列中的数据严格符合从小到大,故不需要排序。

Claisen_的博客 364

力扣#3066

小根堆实际上是一棵树。每个节点的值小于他的子节点。下面就是一个小根堆。反之大根堆是相反的。这是一个大根堆。在c++的STL库中,如果想要利用小根堆或者大根堆,需要使用优先队列。

2302_76512158的博客 1009

leetcode Heap/Queue

输入:nums = [2,11,10,1,3], k = 10输出:2解释:第一次操作中,我们删除元素 1 和 2 ,然后添加 1 * 2 + 2 到 nums 中,nums 变为 [4, 11, 10, 3]。第二次操作中,我们删除元素 3 和 4 ,然后添加 3 * 2 + 4 到 nums 中,nums 变为 [10, 11, 10]。此时,数组中的所有元素都大于等于 10 ,所以我们停止操作。使数组中所有元素都大于等于 10 需要的最少操作次数为 2。

EmoC的博客 493
上一篇: 最简单的基于 FFmpeg 的 AVDevice 例子(屏幕录制)
下一篇: Leetcode1462. 课程表 IV
UestcXiye
博客等级 码龄8年 9031粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值