首页 > 编程语言 >算法训练day37 LeetCode860.406.452.

算法训练day37 LeetCode860.406.452.

时间:2023-10-19 22:55:26浏览次数:44  
标签:return people day37 452 vector five que LeetCode860.406

算法训练day37 LeetCode860.406.452.

860.柠檬水找零

题目

860. 柠檬水找零 - 力扣(LeetCode)

题解

代码随想录 (programmercarl.com)

  • 5:收五元

  • 10:收十元,返五元

  • 20:优先还十元+五元;否则还五元*3

  • class Solution
    {
    public:
        bool lemonadeChange(vector<int> &bills)
        {
            int five = 0, ten = 0, twenty = 0;
            for (int bill : bills)
            {
                if (bill == 5)
                    five++;
                if (bill == 10)
                {
                    if (five <= 0)
                        return false;
                    ten++;
                    five--;
                }
                if (bill == 20)
                {
                    if (five > 0 && ten > 0)
                    {
                        five--;
                        ten--;
                    }
                    else if (five >= 3)
                    {
                        five -= 3;
                    }
                    else
                        return false;
                }
            }
            return true;
        }
    };
    

406.根据身高重建队列

题目

406. 根据身高重建队列 - 力扣(LeetCode)

题解

代码随想录 (programmercarl.com)

  • 按身高排序,接着由大到小插入到新的位置(que

    • 可以保证数据a插入que前,que中数据均大于等于a ----->a插入的位置符合要求
    • 使用链表,提高运行速度
  • class Solution
    {
    public:
        static bool cmp(const vector<int> &a, const 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);
            list<vector<int>> que;
            for (int i = 0; i < people.size(); i++)
            {
                int position = people[i][1];
                std::list<vector<int>>::iterator it = que.begin();//	这一行将迭代器it初始化为que列表的开始位置。
                while (position--)	//这个循环通过position的值将迭代器it移动
                {
                    it++;
                }
                que.insert(it, people[i]);	//在找到列表中的正确位置后,将当前人插入到该位置。
            }
            return vector<vector<int>>(que.begin(), que.end());
        }
    };
    

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

标签:return,people,day37,452,vector,five,que,LeetCode860.406
From: https://www.cnblogs.com/High-source/p/17775902.html

相关文章

  • 代码随想录算法训练营-贪心算法-4|406. 根据身高重建队列、452. 用最少数量的箭引爆
    406. 根据身高重建队列1. 一定要想如何确定一个维度,然后再按照另一个维度重新排列。2.先确定身高的维度,降序排列。3. 按照身高排序之后,优先按身高高的people的k来插入,后序插入节点也不会影响前面已经插入的节点,最终按照k的规则完成了队列。4. 局部最优:优先按身高高的peop......
  • 计讯物联边缘计算网关TG452助力燃气柜智慧监测,共织用气安全网
    方案背景近年来,随着城市化进程不断推进,燃气已然成为城市现代化建设的基础设施之一。当前,全国各地利用数字化技术推进燃气的智慧化建设,持续提升燃气监管的信息化水平,实现了从管网、节点、设施设备到燃气柜用户全业务、全场景的智能监管和预警。  作为燃气柜智慧监测的专家企......
  • CF452C 题解
    洛谷链接&CF链接题目简述有\(m\timesn\)张牌,有\(n\)个种类,每个种类有\(m\)张,现在抽一张放回,再抽一张,求这张牌与第一张抽出的牌种类相同的概率。思路本题是一道结论题,我们来推一下公式。首先需要特判一个点:只有\(1\)张牌,即\(n=m=1\),那么两次抽都会是这张牌,所......
  • vue-day37--修改默认配置
    1.vue脚手架文件结构 2.不同的版本vue3.修改默认配置  修改默认配置1.查看脚手架的默认配置vueinspect>output.js2.为什么main.js是入口文件,index.html是首页调整vue.config.js......
  • python基础day37 基于TCP、UDP协议的套接字编程和粘包现象
    基于TCP协议的套接字编程(socket编程)什么是Socket?我们经常把Socket翻译为套接字,Socket是在应用层和传输层之间的一个抽象层,它把TCO/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信  套接字的分类:AF_UNIX:用在局域网中AF_INET:用在互联网中客户......
  • 计讯物联AI视频网关TG452在5G智能公交车的应用
    在智慧城市的规模化建设中,万物互联进入全面爆发期。交通行业作为经济发展的大动脉和风向标,势必在新基建的引领下步入发展快轨。公交车是城市公共交通中不可缺少的客运交通工具,其信息化与智能化发展更是必然趋势。 计讯物联以5G专网作为通信载体,利用其高速率、低时延、大带宽、......
  • 算法学习day37贪心part06-738、968
    packageLeetCode.greedypart06;/***738.单调递增的数字*当且仅当每个相邻位数上的数字x和y满足x<=y时,我们称这个整数是单调递增的。*给定一个整数n,返回小于或等于n的最大数字,且数字呈单调递增。*示例:*输入:n=332*输出:299**/public......
  • 算法学习day35贪心part04-860、406、452
    packageLeetCode.greedypart04;/***860.柠檬水找零*在柠檬水摊上,每一杯柠檬水的售价为5美元。顾客排队购买你的产品,(按账单bills支付的顺序)一次购买一杯。*每位顾客只买一杯柠檬水,然后向你付5美元、10美元或20美元。你必须给每个顾客正确找零,也就是说净交易是每......
  • poj 2452(RMQ+二分)
    解题思路:这题实际上就是求某区间上的最值问题,可以先枚举区间的起始位置,然后二分去搜索比起始位置大的数且位置最远(这里可以用RMQ算法区间内的最小值),找到之后再利用RMQ算法找这段区间内的最大的,如果这段区间的长度比当前的最优值大,那么更新。详细的见代码。#include<iostream>#incl......
  • 刷题笔记:P4452 [差分]
    题目传送门:https://www.luogu.com.cn/problem/P4552一道非常巧妙的差分。我们先来讲一下样例:原数组:1122差分后:1010这时,我们发现,若满足数组中所有数都相等,则必须将差分数组除第一位以外的数都变成0我们怎么用最小的次数将差分数组变成零呢?这个样例不算明显,我们再造一......