代码随想录Day35 | 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

CSI Tools 工具的安装 Intel 5300 + Ubuntu14.04 在 ubuntu14 系统上面安装 CSI Tools,2020最新教程,亲测可用,只要保证和我做法一致绝对可以安装好。 阅读详情

代码随想录Day35 | 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

860.柠檬水找零

文档讲解:代码随想录
视频讲解: 贪心算法,看上去复杂,其实逻辑都是固定的!LeetCode:860.柠檬水找零
状态

因为只有三种情况,所以可以考虑分类讨论,对于面值为5的,我们不需要找0,对于面值为10的,我们需要找1张5元,对于面值为20的我们有两种方式一个是找3张5元的,一个是找1张10元1张5元,这里就需要设计贪心了,因为10元唯一的用处就是用来找20的,所以需要优先消耗掉10元,防止后于没有5元的情况。具体可以新建一个数组然后存储5,10,20的张数,等到需要找钱时,看还有没有余额

//5 -- 不需要
//10 -- 1张5
//20 -- 3张5 或者 1张10+1张5
class Solution {
public:
    bool lemonadeChange(vector<int>& bills) {
        vector<int> check(3);
        
        for(int i = 0;i<bills.size();i++)
        {
            if(bills[i] == 5)
            {
                check[0]++;
            }
            if(bills[i] == 10)
            {
                
                if(check[0]-1<0)
                {
                    return false;
                }
                check[0]--;
                check[1]++;
            }
            if(bills[i] == 20)
            {
                //需要优先使用10+5的组合来找零
                //因为这是10的唯一用处
                //5如果先用完后续可能会出错
                if(check[0]-1>=0 && check[1]-1>=0)
                {
                    check[0]--;
                    check[1]--;                    

                    continue;
                }
                else if(check[0]-3>=0)
                {
                    check[0] -= 3;
                    continue;
                }
                else
                {
                    return false;
                }
                check[2]++;
            }
        }
        return true;
    }
};

406.根据身高重建队列

文档讲解:代码随想录
视频讲解: 贪心算法,不要两边一起贪,会顾此失彼 | LeetCode:406.根据身高重建队列
状态

本题和昨天的按分值分配孩子类似,对于最后的结果是由两个因素影响的。那么还是需要将这两个因素分开来考虑,首先需要考虑身高,因为不矮于自己这个数值是需要身高来控制的。首先就是利用身高降序排序,因为这样之后我们根据k值来插入就会插入到正确位置,比如k等于2,那说明这个h之前应该有两个不小于h的值,那么从大到小的这个顺序刚好可以满足

//先按身高排序,然后再根据k来搜索更新位置
class Solution {
public:
    //降序排列
    static bool cmp(vector<int>& a,vector<int>& b)
    {
        if(a[0]==b[0]) return a[1]<b[1];
        return a[0]>b[0];
    }
    vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
        sort(people.begin(),people.end(),cmp);
        vector<vector<int>> res;
        //从大h到小h根据k值搜索应该插入的位置
        for(int i= 0;i<people.size();i++)
        {
            //k
            int k = people[i][1];
            res.insert(res.begin()+k,people[i]);
        }

        return res;
    }
};

vector与list

list容器底层是链表,而vector容器底层是数组
vector原理

452.用最少数量的箭引爆气球

文档讲解:代码随想录
视频讲解: 贪心算法,判断重叠区间问题 | LeetCode:452.用最少数量的箭引爆气球
状态

//在一个x区间中,射出一箭会引爆这个区间的气球
//如果 多个x区间 用重叠区域,那么从这个重叠区域射出的将引爆这 多个x区间

//首先按照区间的左值升序排序,左值一样的,较小右值在前面
//遍历,当i的左值超过了前一个重叠区间右值,那么说明之后需要再射出一箭才能引爆后面的
//更新重叠区间
在这里插入图片描述

class Solution {
public:
static bool cmp(vector<int>& a,vector<int>& b)
{
    //if(a[0] == b[0]) return a[1]<b[1];
    return a[0]<b[0];
}
    int findMinArrowShots(vector<vector<int>>& points) {
        sort(points.begin(),points.end(),cmp);
        int res = 1;
        for(int i=1;i<points.size();i++)
        {
            if(points[i][0] > points[i-1][1])
            {
                res++;
            }
            //更新重叠区间
            else
            {
                points[i][1] = min(points[i-1][1],points[i][1]);
            }

        }
        return res;
    }
};
RK3568平台(USB篇)USB HUB集线器 hub,集线器,连接在host与device之间的一种用于usb接口扩展的usb设备。可以将一个usb上行接口扩展为多个下行接口,使得一个host可以同时与多个device连接。一般来说,一块hub桥接芯片可扩展4个usb接口,而市面上的一拖七hub,其实使用了两块hub桥接芯片,其中一块hub桥接芯片的上行端口连接到另一块hub桥接芯片的下行端口。hub的上行端口面向host,下行端口面向device。在下行端口上,hub提供了设备接入检测和设备移除检测的能力,并给下行端口供电。 阅读详情

相关推荐

FA 新增资产API Demo

DECLARE l_trans_rec fa_api_types.trans_rec_type; l_dist_trans_rec fa_api_types.trans_rec_type; l_asset_hdr_rec fa_api_types.asset_hdr_rec_type; l_asset_desc_rec fa_a

chosen1brain的专栏 2142

代码随想录Day35|860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球

860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球

weixin_46620779的博客 1113

保姆级教程:在Windows 11上用VSCode和Conda搞定Depth-Anything-3(含常见报错修复)

本文提供在Windows 11系统上使用VSCode和Conda配置Depth-Anything-3的完整教程,涵盖环境搭建、依赖安装、常见报错修复及深度图生成实战。特别针对CUDA与PyTorch版本匹配、Hugging Face镜像加速等关键问题提供解决方案,帮助开发者高效实现计算机视觉中的深度估计应用。

weixin_30338481的博客 346

Day35代码随想录贪心part04:860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。,会变为[5,0],[7,0],[6,1],[7,1],[5,2],[4,4]这样会发现[5,2]和[4,4]调整的时候,身高也是不能确定下来的,然后ki前面有几个人这个维度也比较难确定。

Estrellazhu的博客 980

告别手动处理:用 Bruker NSMatlabUtilities 工具箱批量分析 AFM 力曲线数据的实战案例

本文介绍了如何使用 Bruker NSMatlabUtilities 工具箱实现 AFM 力曲线数据的批量分析,解决传统手动处理耗时且易出错的问题。通过实战案例展示工具箱的核心功能,包括数据读取、力曲线分析和可视化,帮助科研人员提升数据处理效率和准确性。

weixin_28362173的博客 213

微信支付V2,jsapi支付拉起收银台报错:调用支付JSAPI缺少参数:total_fee

拉起收银台报错

m0_54355172的博客 3873

代码随想录算法训练营DAY35|C++贪心算法Part.4|860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

贪心+模拟解体。局部最优:遇到账单20,优先消耗美元10,完成本次找零。全局最优:完成全部账单的找零。首先我们手里一分钱都没有: 遇到5美元顾客 遇到10美元顾客 遇到20美元:因为5美元即可以找10美元也可以找20美元,所以我们遇到20美元先用10美元来找零 CPP代码 406.根据身高重建队列 思路 本题的思路是怎么来的呢?首先这里举个例子,h和k分别表示身高和队列前面身高大于等于该的人数如果我们考虑k,并且如果k相同就把身高h小的放到队伍后面(因为k相同大身高如果放前面,k值肯定会

糖炒栗子 1109

智能驾驶域控制器的“终极大考”:解析EOL测试的核心价值与技术实践

在智能驾驶技术高速发展的今天,域控制器(Domain Controller)作为车辆“大脑”的核心部件,承担着传感器数据处理、决策规划、执行控制等关键任务。然而,这个集成了数十个芯片、运行着数百万行代码的复杂系统,如何确保其出厂前的功能安全与性能稳定?答案就藏在被称为“生产线最后一道防线”的EOL(End of Line)测试中。

汽车电子软件领域知识分享 703

代码随想录刷题day35 860.柠檬水找零;406.根据身高重建队列;452. 用最少数量的箭引爆气球

代码随想录刷题day35

weixin_43127049的博客 281

从 SAP GUI 走向 SAP Fiori:一套面向 SAP S/4HANA 的用户迁移实战方法论

SAP S/4HANA转型中,用户从SAP GUI迁移到Fiori的难点在于业务价值的重构而非简单的界面替换。Fiori的核心价值在于角色化、实时洞察和智能决策,而非完全替代GUI。成功迁移需分阶段推进:先展示关键角色的价值,建立统一入口,再逐步提高Fiori占比。让用户参与设计比后期培训更重要,需通过具体场景(如采购优先级管理)展示效率提升。迁移策略应平衡新旧界面优势,让Fiori成为业务价值触达的主要方式,而非强制替换。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 236

【Visual Assist X助手安装问题】Visual Assist X无法安装(双击安装包没反应) | Visual Assist X安装后在Visual Studio中找不到(亲测有效)

本文分享了Visual Assisant X助手的安装与使用问题的详细解决办法,因为网上搜集的信息比较少,所以有一定的参考价值。考虑到很多开发新手会遇到上述问题,可能对Windows系统不熟悉,所以相关操作步骤讲解的很详细!

dvlinker的技术专栏 6万+

代码随想录算法训练营day35 | 860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球

为了让气球尽可能的重叠,需要对数组进行排序。下面题解是使用气球起始位置排序实现的,也可以使用终止位置排序,只是遍历顺序需要调整。【注意】这里排序时可能会溢出,需要使用Integer内置比较方法Integer.comare(a,b),身高一定是从大到小排(身高相同的话则k小的站前面),让高个子在前面。优先按身高高的people的k来插入。插入操作过后的people满足队列属性。局部最优:当气球出现重叠,一起射,所用弓箭最少。最后都做完插入操作,整个队列满足题目队列属性。全局最优:把所有气球射爆所用弓箭最少。

2301_77450803的博客 910

CH7034B显示模块原理图设计,已量产

显示桥接板的价值,不在于简单把 RGB 排线换成另一种接口,而在于能否把并行视频、时钟、显示控制、模拟输出和辅助配置同时组织成稳定系统。当前这张 CH7034B 原理图就是这种思路:U3 CH7034B 作为核心桥接芯片,输入侧是 LCD_R0~R7、LCD_G0~G7、LCD_B0~B7、LCD_DE、LCD_HSYNC、LCD_VSYNC、LCD_CLK 与 LCD_BL,输出侧则通过 DAC0~DAC2 和 DDC_SC/DDC_SD 形成模拟显示接口边界。

不脱发的程序猿 161

代码随想录算法训练营Day35|860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

本题要判断是否能实现对每位顾客正确找零,一共有5元、10元、20元三种面值的钞票,每杯柠檬水的售价是固定的5美元。只要每次交易后对三种面值的钞票进行准确的变化统计即可判断是否能够正确找零。本题与昨天分发糖果的题目有些类似,也要考虑两个维度,h和k,依旧是要先想如何确定一个维度,然后再按照另一个维度重新排列。本题的难点在于如何让判断多个气球能否同时被一箭引爆。今天的第一题难度不大,自己直接实现,第二题复习了一下对于两个维度的问题的处理方式,以及第三题初步认识了重叠区间问题的处理方法。

m0_68682181的博客 739

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

代码随想录【Day35】贪心| 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球

贪心算法

傅里叶变不出的博客 239

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

代码随想录算法训练营day35 || 860.柠檬水找零,406. 根据身高重建队列,452. 用最少数量的箭引爆气球

思路:没有特别明确的贪心思想,可能涉及到贪心的思想就是在处理找零15元时,优先消耗10元的纸币,没有10元的,但消耗3张5元的。本题的关键就是统计5元,10元纸币的数量,虽然是有必要统计一下总共的利润来评估是否还有钱来找零,但是所有的找零都是花费的5元和10元,所以20元的无需统计,那么总利润统计也就没有意义,只要剩余的5元和10元纸币的数量可以应付所有找零,那么本题就可以返回true;首先自己实现了这道题的题解,认为重叠区间类型题目的解题就是合并存在交集的区间,然后统计最终还剩下几个相互独立的区间;

旭 583

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

代码随想录day35|860. 柠檬水找零|406. 根据身高重建队列| 452. 用最少数量的箭引爆气球|Golang

笔记

weixin_42161901的博客 567

代码随想录算法训练营 day35 |860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

排序完的people: [[7,0], [7,1], [6,1], [5,0], [5,2],[4,4]]

weixin_42179093的博客 145

代码随想录训练营day35|860、柠檬水找零;406、根据身高重建队列;452、用最少数量的箭引爆气球

在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。给你一个数组 points ,其中 points [i] = [xstart,xend] ,返回引爆所有气球所必须射出的最小弓箭数。

weixin_43561267的博客 96

代码随想录day35|贪心算法 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

学习记录

rogue1207的博客 340

代码随想录刷题Day35 | 860. 柠檬水找零 | 406. 根据身高重建队列 | 452. 用最少数量的箭引爆气球

代码随想录刷题Day35 | 860. 柠檬水找零 | 406. 根据身高重建队列 | 452. 用最少数量的箭引爆气球

DUM1615的博客 273

代码随想录算法训练营day35|LeetCode 860 柠檬水找零、LeetCode 406 根据身高重建队列、LeetCode 452 用最少数量的箭引爆气球

代码随想录算法训练营day35

qq_51588716的博客 151

代码随想录训练营Day35| 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

452. 用最少数量的箭引爆气球 - 力扣(LeetCode)406. 根据身高重建队列 - 力扣(LeetCode)860. 柠檬水找零 - 力扣(LeetCode)452. 用最少数量的箭引爆气球。452. 用最少数量的箭引爆气球。406.根据身高重建队列。406.根据身高重建队列。

weixin_44174445的博客 125

代码随想录 -- day35 -- 860.柠檬水找零 、406.根据身高重建队列 、452. 用最少数量的箭引爆气球

排序完的people: [[7,0], [7,1], [6,1], [5,0], [5,2],[4,4]]

Accelerated的博客 529

代码随想录二刷day35 |贪心 之 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

贪心 之 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

baimaozi_007的博客 246

代码随想录算法训练营三刷day35 |贪心 之 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

可以看出首先第一组重叠气球,一定是需要一个箭,气球3,的左边界大于了 第一组重叠气球的最小右边界,所以再需要一支箭来射气球3了。如果按照k来从小到大排序,排完之后,会发现k的排列并不符合条件,身高也不符合条件,两个维度哪一个都没确定下来。以题目示例: [[10,16],[2,8],[1,6],[7,12]]为例,如图:(方便起见,已经排序)那么按照身高h来排序呢,身高一定是从大到小排(身高相同的话则k小的站前面),让高个子在前面。局部最优:遇到账单20,优先消耗美元10,完成本次找零。

baimaozi_007的博客 451
上一篇: 代码随想录Day34 | 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果
下一篇: 代码随想录Day36 | 435. 无重叠区间 763.划分字母区间 56. 合并区间
sRiddle
博客等级 码龄7年 528粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值