day34打卡

news2025/1/21 3:00:27

day34打卡

860. 柠檬水找零

解法,贪心:局部最优:遇到账单20,优先消耗美元10,完成本次找零 -》全局最优:完成全部账单的找零。

  • 遇到5,直接收下
  • 遇到10,找一个5元
  • 遇到20,优先找一张10和一张5,没有10元,找3张5元
class Solution {
public:
    bool lemonadeChange(vector<int>& bills) {
        int five = 0, ten = 0, twenty = 0;
        for(auto& e : bills)
        {
            //情况1
            if(e == 5) five++;
            //情况2
            if(e == 10)
            {
                if(five == 0) return false;
                five--;
                ten++;
            }
            //情况3
            if(e == 20)
            {
                if(five > 0 && ten > 0)
                {
                    five--;
                    ten--;
                    twenty++;
                }
                else if(five >= 3)
                {
                    five -= 3;
                    twenty++;
                }
                else
                {
                    return false;
                }
            }
        }
        return true;
    }
};

406. 根据身高重建队列

解法,贪心:局部最优:优先按身高高的people的k来插入。插入操作过后的people满足队列属性 -》全局最优:最后都做完插入操作,整个队列满足题目队列属性

  • 身高从大到小排(身高相同k小的站前面)

image-20240218215209876

class Solution {
    // 身高从大到小排(身高相同k小的站前面)
    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];
    }
public:
    vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
        sort(people.begin(), people.end(), cmp);
        // list底层是链表实现,插入效率比vector高的多
        list<vector<int>> queue;
        for(int i = 0; i < people.size(); i++)
        {
            int pos = people[i][1];//插入位置的下标,也就是k
            std::list<vector<int>>::iterator it = queue.begin();
            while(pos--)    it++;//找到插入位置
            queue.insert(it, people[i]);
        }
        return vector<vector<int>>(queue.begin(), queue.end());
    }
};

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

解法,贪心:局部最优:当气球出现重叠,一起射,所用弓箭最少 -》全局最优:把所有气球射爆所用弓箭最少。

image-20240218221544213

class Solution {
    static bool cmp(vector<int>& a, vector<int>& b)
    {
        return a[0] < b[0];
    }
public:
    int findMinArrowShots(vector<vector<int>>& points) {
        //按照气球起始位置排序
        sort(points.begin(), points.end(), cmp);
        //计算箭的数量
        int ret = 1;//最少使用一个
        for(int i = 1; i < points.size(); i++)
        {
            //判断气球是否重叠
            //右边气球的左边界,是否大于,左边气球的右边界
            if(points[i][0] > points[i-1][1])
            {
                //大于就多用一根箭
                ret++;
            }
            else
            {
                //小于等于就使用同一根箭,
                //并且缩小气球重叠边界范围(更新为左边的气球右边界和当前气球的右边界最小值)
                points[i][1] = min(points[i][1], points[i-1][1]);
            }
        }
        return ret;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1455069.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CS50x 2024 - Lecture 6 - Python

00:00:00 - Introduction 00:01:01 - Python print("hello world")与c的显著差异 1.不必显式包含标准库 2.不再需要定义main函数 00:07:24 - Speller 00:13:41 - Filter from PIL import Image, ImageFilterbefore Image.open("bridge.jpg") after…

山西电力市场日前价格预测【2024-02-15】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2024-02-15&#xff09;山西电力市场全天平均日前电价为168.98元/MWh。其中&#xff0c;最高日前电价为366.42元/MWh&#xff0c;预计出现在18:30。最低日前电价为0.00元/MWh&#xff0c;预计出…

黑马程序员-瑞吉外卖day9

菜品分类下拉列表 CategoryController里面写 /*** 根据条件查询分类数据** param category* return*/GetMapping("/list")ApiOperation("菜品分类目录")public R<List<Category>> list(Category category) {List<Category> list cate…

洛夫克拉夫特“克苏鲁神话”艺术风格探索(一)

克苏鲁神话引入中国时间不长&#xff0c;研究的规模也不如国外大&#xff0c;但克苏鲁神话作为神话史、奇幻小说史上的重要节点&#xff0c;有很大的影响力与非常重要的研究意义。为了促进中文语境下克苏鲁神话元素的使用和创作、更好地设计克苏鲁的呼唤游戏模组&#xff08;剧…

0206-1-网络层

第 4 章 网络层 网络层提供的两种服务 虚电路服务 数据报服务 概要: 虚电路服务与数据报服务的对比 网际协议 IP 网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议&#xff1a; 地址解析协议 ARP (Address Resolution Protocol)逆地…

【论文精读】SimCLR2

摘要 本文提出了一个半监督学习框架&#xff0c;包括三个步骤&#xff1a;无监督或自监督的预训练&#xff1b;有监督微调&#xff1b;使用未标记数据进行蒸馏。具体改进有&#xff1a; 发现在半监督学习&#xff08;无监督预训练有监督微调&#xff09;中&#xff0c;对于较大…

嵌入式day24

开课复工啦~ 冲冲冲&#xff01; 文件IO&#xff1a; read函数和write函数&#xff1a; &#x1f4da; write 接口有三个参数&#xff1a; fd&#xff1a;文件描述符buf&#xff1a;要写入的缓冲区的起始地址&#xff08;如果是字符串&#xff0c;那么就是字符串的起始地址&…

语义分割-基础知识

1.cls_iou计算: cls0_iou预测正确的像素个数/&#xff08;预测为该类别的像素个数真实标签为该类别的像素个数-预测正确的像素个数&#xff09; mean_iou各个类别的像素预测准确值相加/像素总个数2.转置卷积(Transposed Convolution) 转置卷积不是卷积的逆运算 转置卷积也是卷…

黑猫带你学NandFlash第2篇:NandFlash部分相关名词释义

1 前言 1.1 声明 本文依据ONFI5.1、网络资料及个人工作经验整理而成&#xff0c;如有错误请留言。 文章为付费内容&#xff0c;已加入原创侵权保护&#xff0c;禁止私自转载及抄袭。 文章所在专栏&#xff1a;《黑猫带你学&#xff1a;NandFlash详解》 1.2 本文背景 本文关…

springboot198基于springboot的智能家居系统

基于Springboot的智能家居系统 **[摘要]**社会和科技的不断进步带来更便利的生活&#xff0c;计算机技术也越来越平民化。二十一世纪是数据时代&#xff0c;各种信息经过统计分析都可以得到想要的结果&#xff0c;所以也可以更好的为人们工作、生活服务。智能家居是家庭的重要…

【java苍穹外卖项目实战三】nginx反向代理和负载均衡

文章目录 1、nginx反向代理2、nginx 反向代理的好处3、nginx 反向代理的配置方式5、nginx 负载均衡的配置方式6、nginx 负载均衡策略 我们思考一个问题&#xff1a; 前端发送的请求&#xff0c;是如何请求到后端服务的&#xff1f; 前端请求地址&#xff1a;http://localhost/…

【C++学习手札】多态:掌握面向对象编程的动态绑定与继承机制(深入)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;世界上的另一个我 1:02━━━━━━️&#x1f49f;──────── 3:58 &#x1f504; ◀️ ⏸ ▶️ ☰ &am…

手把手教你Linux系统下的Java环境配置,简单到不行!

推荐阅读 给软件行业带来了春天——揭秘Spring究竟是何方神圣&#xff08;一&#xff09; 给软件行业带来了春天——揭秘Spring究竟是何方神圣&#xff08;二&#xff09; 文章目录 推荐阅读下载JDK安装包方式一方式二 添加环境变量验证安装情况 下载JDK安装包 方式一 1.进入…

如何引导llm为自己写prompt生成剧本

如何使用写prompt让你自己生一个狗血修仙穿越短剧&#xff0c;且短剧有趣生动让人流连忘返 好的&#xff0c;我会尝试编写一个狗血修仙穿越短剧的prompt&#xff0c;以激发你的想象力&#xff0c;让你创作出一个既有趣又生动的短剧。以下是我的prompt&#xff1a; 标题&#x…

神经网络代码实现

目录 神经网络整体框架 核心计算步骤 参数初始化 矩阵拉伸与还原 前向传播 损失函数定义 反向传播 全部迭代更新完成 数字识别实战 神经网络整体框架 核心计算步骤 参数初始化 # 定义初始化函数 normalize_data是否需要标准化def __init__(self,data,labels,layers,…

遨博I20协作臂关节逆解组Matlab可视化

AUBO I20协作臂关节逆解组Matlab可视化 前言1、RTB使用注意点2、代码与效果2.1、完整代码2.2、运行效果 总结 前言 注意&#xff1a;请预先配置好Matlab和RTB机器人工具箱环境&#xff0c;本文使用matlab2022b和RTB10.04版本 工作需要&#xff0c;使用matlab实现对六轴机械臂…

【Kubernetes in Action笔记】1.快速开始

在Kubernetes上运行一个程序 基础运行环境 当前的运行环境为使用虚拟机构建的单master集群。 [rootk8s-master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane 109d v1.27.1 k8s-node1 Ready …

Jetpack Compose 第 2 课:布局

点击查看&#xff1a;Jetpack Compose 教程 点击查看&#xff1a;Composetutorial 代码 简介 Jetpack Compose 是用于构建原生 Android 界面的新工具包。它使用更少的代码、强大的工具和直观的 Kotlin API&#xff0c;可以帮助您简化并加快 Android 界面开发。 在本教程中&a…

Centos7挂载磁盘

1 查看未挂载的磁盘 命令&#xff1a; fdisk -l红框圈中的即是本次要挂载的磁盘&#xff0c;/dev/vdb 与 /dev/vda 相比&#xff0c;其没有下方的 /dev/vda1 等信息&#xff0c;代表 /dev/vdb 磁盘并没有进行过分区操作&#xff0c;是一个新加的硬盘。 2 对新建的磁盘进行分…

2024.2.18

使用fgets统计给定文件的行数 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) {FILE *fpNULL;if((fpfopen("./test.txt","w"))NULL){perror("open err");return -1;}fputc(h,fp);fputc(\n,fp);fput…