【代码随想录】刷题笔记Day37

前言

  • 试一试早上+晚上固定时间刷题会不会效率and养成习惯

135. 分发糖果 - 力扣(LeetCode)

  • 两边一起判断容易顾此失彼
  • 从左到右遍历,只比较右比左大的情况,局部and全局:右比左大
  • 从右到左遍历,只比较左比右大的情况,局部and全局:左比右大
  • 取两次遍历得到的最大值,局部and全局:比左右都大
  • class Solution {
    public:int candy(vector<int>& ratings) {vector<int> candyVec(ratings.size(), 1);// 从前向后for (int i = 1; i < ratings.size(); i++) {if (ratings[i] > ratings[i - 1]) candyVec[i] = candyVec[i - 1] + 1;}// 从后向前for (int i = ratings.size() - 2; i >= 0; i--) {if (ratings[i] > ratings[i + 1] ) {candyVec[i] = max(candyVec[i], candyVec[i + 1] + 1);}// 也可以用更新的策略// if (ratings[i] > ratings[i + 1] && candies[i] <= candies[i + 1]) {//     candies[i] = candies[i + 1] + 1;// }}// 统计结果int result = 0;for (int i = 0; i < candyVec.size(); i++) result += candyVec[i];return result;}
    };

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

  • 这题模拟就行,唯一需要贪心的就是20的时候优先找10+5,而不是5+5+5
  • class Solution {
    public:bool lemonadeChange(vector<int>& bills) {int five = 0, ten = 0, twenty = 0;for(int i = 0; i < bills.size(); i++){if(bills[i] == 5){five++;}else if(bills[i] == 10){if(five <= 0) return false;ten++;five--;}else if(bills[i] == 20){  // 实际不用维护twenty的数,找不出去if(ten >= 1 && five >= 1){  // 优先消耗5+10ten--;five--;} else if(ten <= 0 && five >= 3) five-= 3;else return false; }}return true;}
    };

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

  • 双端遍历,要领是第二遍不影响第一遍确定好的符合题目意思的排序(类似分发糖果)
  • 先按照h从大到小排(相同则k从小到大),再根据k的值进行插入(不影响其他符合题意)
  • // 用vector效率低,链表效率高
    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) {vector<vector<int>> reQueue;// list<vector<int>> que; // list底层是链表实现,插入效率比vector高的多sort(people.begin(), people.end(), cmp);for(int i = 0; i < people.size(); i++){int pos = people[i][1];reQueue.insert(reQueue.begin() + pos, people[i]);// 链表插入比容器数组效率高,但是没有随机访问功能,只能遍历找插入位置// std::list<vector<int>>::iterator it = reQueue.begin();// while (pos--) { // 寻找插入位置//     it++;// }// reQueue.insert(it, people[i]);}return reQueue;// return vector<vector<int>>(reQueue.begin(), reQueue.end());}
    };

后言

  • 还是折腾到下午了,感觉早上的2小时还是不太够啊,来不及呀来不及~ 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

17.仿简道云公式函数实战-数学函数-ABS

1. ABS函数 ABS 函数可用于返回数字的绝对值 2. 函数用法 ABS(number) 3. 函数示例 如&#xff0c;ABS(-12)和ABS(12)的返回结果均为 12。 4. 代码实战 首先我们在function包下创建math包&#xff0c;在math包下创建AbsFunction类&#xff0c;代码如下&#xff1a; pac…

桶装水订水配送小程序搭建

"尽享清爽健康生活&#xff0c;一键即达——桶装水配送小程序" 在追求健康生活的今天&#xff0c;桶装水已成为日常必需。为了满足大家的需求&#xff0c;我们精心打造了一款全新的桶装水配送小程序。 这款小程序&#xff0c;功能齐全&#xff0c;使用便捷。在线下单…

PLC-IoT 网关开发札记(1):存档和分发 Android App

开篇记 PLC-IoT 网关是作者开发的产品&#xff0c;根据客户需求&#xff0c;立项开发手机 App&#xff0c;为用户提供一种方便、直观、友好的设备操控方式。网关运行的是嵌入式 Linux 操作系统&#xff0c;计划通过某一种通信协议&#xff08;例如 HTTP&#xff0c;MQTT或者 T…

Kylin-Desktop-V10-SP1-General-Release-2303-X86_64-海光版(hygon c86)下载

csdn下载 【免费】Kylin-Desktop-V10-SP1-General-Release-2303-X86-64-海光版-001资源-CSDN文库 【免费】Kylin-Desktop-V10-SP1-General-Release-2303-X86-64-海光版-002资源-CSDN文库 【免费】Kylin-Desktop-V10-SP1-General-Release-2303-X86-64-海光版003资源-CSDN文库…

Android studio 连接夜神模拟器

前言&#xff1a; 在夜神模拟器安装目录&#xff0c;直接打开powerShell&#xff0c;然后输入&#xff1a;nox_adb.exe connect 127.0.0.1:62001&#xff0c;命令无法执行出现以下错误&#xff1a; 按照上面的提示&#xff0c;键入&#xff1a;.\nox_adb.exe 依然无法执行 如…

长宁区科协常务副主席张正行一行到访深兰科技

12月22日&#xff0c;上海市长宁区科协常务副主席张正行、学会部部长洪嫣一行到访深兰科技总部&#xff0c;并与深兰科技集团董事长陈海波、深兰科技集团技术副总裁王雷博士等进行了会谈。 座谈中&#xff0c;陈海波详细介绍了深兰科技当前的企业发展及业务现状&#xff0c;并就…

真实案例扫描APP开发——基于实例分割实现拍照文档实时边缘检测(C++/JNI实现)

前言 这是一个安卓NDK的项目&#xff0c;想要实现的效果就是拍照扫描&#xff0c;这里只涉及到的只有边缘检测&#xff0c;之后会写文档滤镜、证件识别与证件1比1打印&#xff0c;OCR、版面分析之后的文档还原。我的开发环境是Android Studio 北极狐&#xff0c;真机是华为mat…

【网络安全】Log4j 远程代码执行漏洞解析

一、简介 Log4j2 是一个用于 Java 应用程序的成熟且功能强大的日志记录框架。 它是 Log4j 的升级版本&#xff0c;相比于 Log4j&#xff0c;Log4j2 在性能、可靠性和灵活性方面都有显著的改进。 二、特点 Log4j2 是一个功能强大且灵活的日志记录框架&#xff0c;旨在提供高…

数据结构之<堆>的介绍

1.简介 堆是一种特殊的数据结构&#xff0c;通常用于实现优先队列。堆是一个可以被看作近似完全二叉树的结构&#xff0c;并且具有一些特殊的性质&#xff0c;根据这些性质&#xff0c;堆被分为最大堆&#xff08;或者大根堆&#xff0c;大顶堆&#xff09;和最小堆两种。 2.…

Spring Boot:Spring Boot 入门、yaml 配置文件给属性赋值、自动装配原理详解

文章目录 Spring Boot - 01一、概述二、第一个 Spring Boot 程序补充知识 三、配置文件1. yaml 配置文件2. 使用 yaml 配置文件给属性赋值3. 松散绑定以及数据校验4. 配置文件的位置以及多环境配置 四、Spring Boot 分析1. pom.xml2. 启动器3. 主程序4. 自动装配原理5. 主启动类…

ELK日志分析系统,ELFK详解部署

概念简述 ELK日志分析系统是一个开源的日志管理平台&#xff0c;它由三个主要组件组成&#xff0c;分别是Elasticsearch、Logstash和Kibana。这三个组件协同工作&#xff0c;提供了一个完整的解决方案&#xff0c;用于收集、存储、搜索、分析和可视化大规模的日志数据。以下是E…

世微 AP510X 单路低压差线性恒流芯片 3-100V内置ESOP8 LED照明

说明 AP510X 是一系列电路简洁的单路线性LED恒流芯片&#xff0c;适用于3-60V电压范围的LED恒流调光领域。AP510X采用我司算法&#xff0c;可以实现高精度的恒流效果&#xff0c;输出电流恒流精度≤3&#xff05;&#xff0c;电源供电工作范围为3-40V&#xff0c;可以轻松满足…