代码随想录打卡Day31

又是难绷的一天啊,第二题和第三题看完视频才AC的,第一道题又被官方测试样例恶心了,下面细说。

56. 合并区间

这道题没有什么新的思路,还是先将区间按照区间左值排序,然后遍历向量中的每一个区间,如果和前一个区间有重叠的话就合并,没有重叠的话就把上一个存储的区间存入结果中,但是!!!!!!为什么要给这么一个测试案例,直接报错了,然后还排查不了原因,因为输入样例实在是太长了,根本不能把完整的测试样例复制进来,导致我无法debug,我不想充力扣的会员。。。。

后面发现写的谓词有问题,把return a[0] <= b[0];改成return a[0] < b[0];就AC了,但是为什么呢?我真的很想知道,问群助手也不回我,去题目的评论区也找不到类似的问题,可能是因为我这个bug太小众了吧,真的很无语。
这是正确的代码

class Solution {
public:static bool My_Compare(vector<int> &a, vector<int> &b){return a[0] < b[0];}vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> result;//需要先按区间左值对数组排序sort(intervals.begin(), intervals.end(), My_Compare);int Start = intervals[0][0];for(int i = 1; i < intervals.size(); i++){if(intervals[i][0] <= intervals[i - 1][1]) //出现重叠intervals[i][1] = max(intervals[i][1], intervals[i - 1][1]);else{result.push_back({Start, intervals[i - 1][1]});Start = intervals[i][0];}   }result.push_back({Start, intervals[intervals.size() - 1][1]});return result;}
};

738.单调递增的数字

这道题没思路,直接看讲解了。这道题首先要明确一个规则:从后向前遍历才能得到正确结果,从前往后遍历可能会输出非递增的结果,332这个测试样例就是比较好的说明。为了方便遍历,首先把输入的数字转换为字符串,从后往前遍历,需要比较当前数字和前面一位数字的大小关系,如果当前数字>=前面的数字,则已经满足递增关系,则无需变动,但如果出现当前的数字比前面的小,则需要将前一位数字减一,当前数字标记为9的起始位置。在循环中不断更新9的起始位置,循环结束后再用一个for循环从最新的位置开始向后遍历,遍历到的数字一律改为9。当然,也有可能整个循环下来都不需要有位置标记为9,因此标记需要初始化为整个数字的最末端+1(s.size())。

class Solution {
public:int monotoneIncreasingDigits(int n) {string s = to_string(n);int flag = s.size();for(int i = s.size() - 1; i > 0; i--){if(s[i] < s[i - 1]){  //高位的数字比低位的大s[i - 1] = s[i - 1] - 1;flag = i;}}for(int i = flag; i < s.size(); i++)s[i] = '9';return stoi(s);}
};

968.监控二叉树

这道题太难了,直接看讲解去了。这道题目综合了很多知识点,二叉树,递归,贪心。。。首先需要对所有节点的可能状态进行分类,所有节点只可能有三种状态:0.未覆盖;1.有摄像头;2.被覆盖。所以我们需要统计状态为1的节点数。其次,我们需要明确贪心的思路,怎么才能让安装的摄像头数量最少?我们就需要自底向上去遍历二叉树,且尽可能避免在叶子节点安装摄像头,而是在未被覆盖的节点的父节点处安装摄像头。有了这个贪心的原则以后,我们还需要明确如何递归遍历二叉树,这里必须要用后续遍历,因为只有先知道了左右孩子的状态,才能确定当前节点是否应该安装摄像头。明确了这三点之后就可以写代码了。但是这里还有种特殊情况,就是遍历完二叉树以后根节点可能还是未覆盖的状态,所以要单独对这种情况做一个判断,在主函数中调用递归函数判断根节点状态,如果根节点状态为0的话还需要result++。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int result = 0;int Traversal(TreeNode* node){//所有节点只有3个状态:// 0. 未被覆盖  1. 有摄像头  2.已覆盖//确定终止条件if(node == NULL) return 2;  //空节点只能是已覆盖状态//后序遍历int left = Traversal(node -> left);  //左int right = Traversal(node -> right);  //右//中if(left == 2 && right == 2)  //左右孩子都已被覆盖return 0;if(left == 0 || right == 0){  //左右孩子至少有一个未被覆盖,必须装摄像头result++;return 1;}  if(left == 1 || right == 1)return 2;return -1;}int minCameraCover(TreeNode* root) {if(Traversal(root) == 0)result += 1;return result;}
};

今天真的抽象,好多抽象的事,还有抽象的题,麻了。

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

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

相关文章

在职研生活学习--20240907

开学第一天 9月7日&#xff0c;中南大学商学院迎来了一支充满活力的队伍——2024级MBA新生集体整装待发&#xff0c;我们满怀期待地登上了前往长沙望城柏乐园的大巴&#xff0c;准备开启一场为期两天一夜的素质拓展与团队建设之旅。 迎新幼儿园PPT 出发 抵达柏乐园&#xff0c;…

Docker torchserve 部署模型流程

1.拉取官方镜像 地址: https://hub.docker.com/r/pytorch/torchserve/tags docker pull pytorch/torchserve:0.7.1-gpu2. docker启动指令 CPU docker run --rm -it -d -p 8380:8080 -p 8381:8081 --name torch-server -v /path/model-server/extra-files:/home/model-serve…

食品分类2检测系统源码分享

食品分类2检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vi…

应用层协议 —— https

目录 http的缺点 https 安全与加密 运营商挟持 常见的加密方式 对称加密 非对称加密 数据摘要&#xff08;数据指纹&#xff09; 不安全加密策略 1 只使用对称加密 2 只使用非对称加密 3 双方都是用非对称加密 4 对称加密和非对称加密 解决方案 CA证书 http的缺点 我们可…

HarmonyOS开发实战( Beta5.0)骨架屏实现案例实践

鸿蒙HarmonyOS开发往期必看&#xff1a; HarmonyOS NEXT应用开发性能实践总结 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门到精通&#xff09; 介绍 本示例介绍通过骨架屏提升加载时用户体验的方法。骨架屏用…

STM32+FATFS+SD卡+RTC(生成.CSV格式文件)

一、简介 实验目的&#xff1a;在SD卡上挂载文件系统&#xff0c;实时记录压力传感器采集到的数据&#xff1b;且在表格第一排记录采集时间&#xff1b; 因为前面文章包含了除RTC之外的所有的代码&#xff0c;此文章只放RTC代码。 二、工程源码 RTC.c #include "sys.h…

cocosCreator实现一个验证码弹窗验证功能

公开文章地址 在 Cocos Creator 中实现一个6位数的验证码输入弹窗功能。主要包含以下三点 1、 可以连续输入验证码 2、 可以粘贴验证码 3、 可以连续删除验证码 前言 引擎版本: Cocos Creator 2.7.2 开发语言: ts 效果图 实现思路 1、 在弹窗界面放置6个输入框的精灵&#x…

828华为云征文 | 使用华为云Flexus云服务器X安装搭建crmeb多门店商城教程

&#x1f680;【商城小程序&#xff0c;加速启航&#xff01;华为云Flexus X服务器助力您的业务腾飞】&#x1f680; 1、点击链接进入华为云官网&#xff0c;页面如下&#xff1a; 华为云Flexus云服务器X选购页面 https://www.huaweicloud.com/product/flexus-x.html 2、进…

Linux下编译Kratos

本文记录在Linux下编译Kratos的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1Boost1.74.0oneAPI2024.2.1 一、依赖与代码 1.1 安装依赖 apt-get update apt-get install vim openssh-server openssh-client ssh \build-essential …

初级练习[3]:Hive SQL子查询应用

目录 环境准备看如下链接 子查询 查询所有课程成绩均小于60分的学生的学号、姓名 查询没有学全所有课的学生的学号、姓名 解释: 没有学全所有课,也就是该学生选修的课程数 < 总的课程数。 查询出只选修了三门课程的全部学生的学号和姓名 环境准备看如下链接 环境准备h…

spring项目整合log4j2日志框架(含log4j无法打印出日志的情况,含解决办法)

Spring整合Log4j2的整体流程 Lo 1&#xff09;导入log4j-core依赖 <!--导入日志框架--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <ver…

Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)

导航&#xff1a; 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码解析 推荐视频&#xff1a; 黑马程序员全套Java教程_哔哩哔哩 尚硅谷Java入门视频教程_哔哩哔哩 推荐书籍&#xff1a; 《Ja…

OpenHarmony鸿蒙开发( Beta5.0)智能油烟机开发实践

样例简介 本Demo是基于Hi3516开发板&#xff0c;使用开源OpenHarmony开发的应用。本应用主要功能有&#xff1a; 可以搜索本地指定目录的图片和视频文件&#xff0c;并可进行点击播放。 可以通过wifi接收来自手机的美食图片以及菜谱视频&#xff0c;让我们对美食可以边学边做…

GEE 迭代删除谷歌资产文件夹

在Google Earth Engine (GEE) 中管理大量地理空间数据时&#xff0c;我们可能会遇到需要清理不再需要的资产的情况。但需要提前删除子文件后才可删除文件夹&#xff0c;才可释放存储空间&#xff0c;删除过时的数据。本文将介绍如何在GEE中迭代删除资产文件夹。 代码详解 以下…

【Redis】Redis 典型应用 - 缓存 (Cache) 原理与策略

目录 Redis 典型应⽤ - 缓存 (cache)什么是缓存使⽤ Redis 作为缓存缓存的更新策略1)定期⽣成2)实时生成 缓存预热&#xff0c;缓存穿透&#xff0c;缓存雪崩 和 缓存击穿关于缓存预热 (Cache preheating)什么是缓存预热 关于缓存穿透 (Cache penetration)什么是缓存穿透为何产…

网络安全学习路线图(2024版详解)

近期&#xff0c;大家在网上对于网络安全讨论比较多&#xff0c;想要学习的人也不少&#xff0c;但是需要学习哪些内容&#xff0c;按照什么顺序去学习呢&#xff1f;其实我们已经出国多版本的网络安全学习路线图&#xff0c;一直以来效果也比较不错&#xff0c;本次我们针对市…

树莓派!干农活!

农作物种植是一个需要精准操作的行业&#xff0c;而农业的长期趋势是朝着机械化方向发展。Directed Machines公司的土地护理机器人&#xff08;Land Care Robot&#xff09;&#xff0c;基于Raspberry Pi4和RP2040构建&#xff0c;是解放稀缺人力资本的一种经济高效方式。 Dir…

用Matlab求解绘制2D散点(x y)数据的最小外接矩形

用Matlab求解绘制2D散点&#xff08;x y&#xff09;数据的最小外接矩形 0 引言1 原理介绍及实现2 完整代码及相关函数3 结语 0 引言 散点/多边形的外接图形是确定模型轮廓或姿态的一种可视化方法&#xff0c;也是有很大的用途的。前面已经介绍过两种简单的散点 ( x , y ) {(x,…

mysql——关于表的增删改查(CRUD)

目录 比较运算符和逻辑运算符图 一、增加&#xff08;Create&#xff09; 1、全列插入 2、指定列插入 二、查询&#xff08;Retrieve&#xff09; 1、全列查询 2、指定列查询 3、别名&#xff08;as&#xff09; 4、表达式查询 5、去重&#xff08;distinct&#xff09; 6、…

如何正确复盘带货直播间?

如何正确复盘带货直播间&#xff1f;其实&#xff0c;直播复盘可以分为四个关键步骤。首先&#xff0c;如果你的直播间没有人进来&#xff0c;核心问题往往是曝光率太低。观众不愿意点击进入你的直播间&#xff0c;那还谈什么卖货呢&#xff1f;平台也不会给予推荐流量。那么&a…