当前位置: 首页 > news >正文

Day31 贪心算法 part05

56. 合并区间

本题也是重叠区间问题,如果昨天三道都吸收的话,本题就容易理解了。

代码随想录

class Solution {public int[][] merge(int[][] intervals) {Arrays.sort(intervals, (a,b) -> Integer.compare(a[0], b[0]));List<int[]> result = new ArrayList<>();for(int i = 1; i < intervals.length; i++){if(intervals[i][0] <= intervals[i-1][1]){intervals[i][0] = Math.min(intervals[i][0], intervals[i-1][0]);intervals[i][1] = Math.max(intervals[i][1], intervals[i-1][1]);}else{result.add(new int[]{intervals[i-1][0], intervals[i-1][1]});            }}result.add(new int[]{intervals[intervals.length-1][0], intervals[intervals.length-1][1]}); return result.toArray(new int[0][]);}
}

总结

1.本题的套路还是判断重叠区间问题。和射气球是一样的套路,只是判断条件和判断后的更新操作有所不同。

2.还是一样的套路,我们先对左边界进行排序,让所有的相邻区间尽可能的重叠在一起。如果intervals[i][0] <= intervals[i-1][1]说明当前段的边界和上一个边界有重叠,然后对当前边界进行跟新,需要更新当前边界的左边取最小值,然后更新当前边界的右边取最大值。如果判断没有重叠,就把上一段区间加入到集合里面。注意for循环之后,其实最后一段区间是没有加入到集合里面的,我们需要在for循环之后,单独把最后一段区间加入到集合里面。最后把集合result.toArray(new int[0][])转为二维数组。

738.单调递增的数字

代码随想录

class Solution {public int monotoneIncreasingDigits(int n) {//一开始不知道怎么处理整数的每一位,其实转为字符串或者字符数组处理就可以了String num = String.valueOf(n);char[] chars = num.toCharArray();int flag = chars.length;for(int i = chars.length - 1; i > 0; i--){if(chars[i] < chars[i-1]){chars[i-1]--;flag = i;}}for(int i = flag; i < chars.length; i++){chars[i] = '9';}return Integer.parseInt(new String(chars));}
}

总结

1.这道题只需要想明白我们要遵循的处理逻辑就可以。就是如果碰到前一位的数字比当前位高,那我们就把前一位数字减1,当前数字应该变成9。想明白这个就好做了。然后还有一个难点就是应该前序遍历还是后序遍历,这种情况可以自己模拟一下,对于这道题,应该是后序遍历,因为后序遍历可以利用到前一次处理的结果。最后一个难点就是我们不应该是直接把当前数字变成9,而是设置一个flag,让flag后面的数字全变成9,这是为了防止1000,这种情况,如果不使用flag,就是900,而不是999。还有flag的初始不能为0,因为如果碰到1234,这种就不需要处理flag,所以我们应该初始为 int flag = chars.length;

2.一开始不知道怎么处理整数的每一位,其实转为字符串或者字符数组处理就可以了,后面再通过Integer.parseInt()转为int类型。然后基本数据类型是没有toString方法的。

3.这道题关键是想到个例怎么处理,还要考虑遍历顺序,只有从后向前遍历才能重复利用上次比较的结果。最后想到使用flag来标记从哪里开始赋值9。

968.监控二叉树 (可跳过)

本题是贪心和二叉树的一个结合,比较难,一刷大家就跳过吧。

代码随想录

总结

总结

可以看看贪心算法的总结,贪心本来就没啥规律,能写出个总结篇真的不容易了。

代码随想录

相关文章:

Day31 贪心算法 part05

56. 合并区间 本题也是重叠区间问题&#xff0c;如果昨天三道都吸收的话&#xff0c;本题就容易理解了。 代码随想录 class Solution {public int[][] merge(int[][] intervals) {Arrays.sort(intervals, (a,b) -> Integer.compare(a[0], b[0]));List<int[]> result …...

uniapp连接mqtt频繁断开原因和解决方法

mqtt参考文档&#xff1a;MQTT.js 入门教程 | EMQ、MQTT.js 入门教程 - EMQX - 博客园 uniapp引用MQTT频繁断开的问题可能由于以下几个原因导致&#xff1a; 网络不稳定&#xff1a;频繁断开可能是由于网络不稳定导致的&#xff0c;可以尝试优化网络连接。 心跳机制问题&…...

【数据结构-队列】力扣641. 设计循环双端队列

设计实现双端队列。 实现 MyCircularDeque 类: MyCircularDeque(int k) &#xff1a;构造函数,双端队列最大为 k 。 boolean insertFront()&#xff1a;将一个元素添加到双端队列头部。 如果操作成功返回 true &#xff0c;否则返回 false 。 boolean insertLast() &#xff1…...

leetcode3250. 单调数组对的数目 I,仅需1s

题目&#xff1a; https://leetcode.cn/problems/find-the-count-of-monotonic-pairs-i/description/ 不为别的&#xff0c;只是记录下这个超过100%&#xff0c;而且比原先最快的快了一个量级 不知道咋分析&#xff0c;反正得出结论就是&#xff0c;变大不变&#xff0c;变小…...

安全基线检查

一、安全基线检测基础知识 安全基线的定义 安全基线检查的内容 安全基线检查的操作 二、MySQL的安全基线检查 版本加固 弱口令 不存在匿名账户 合理设置权限 合理设置文件权限 日志审核 运行账号 可信ip地址控制 连接数限制 更严格的基线要求 1、禁止远程连接数据库 2、修改…...

C#读取本地图像的方法总结

前言&#xff1a; 大家好&#xff0c;我是上位机马工&#xff0c;硕士毕业4年年入40万&#xff0c;目前在一家自动化公司担任软件经理&#xff0c;从事C#上位机软件开发8年以上&#xff01;我们在C#开发C#程序的时候&#xff0c;有时候需要读取本地图像&#xff0c;下面进行详…...

力扣81:搜索旋转排序数组II

已知存在一个按非降序排列的整数数组 nums &#xff0c;数组中的值不必互不相同。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转 &#xff0c;使数组变为 [nums[k], nums[k1], ..., nums[n-1], n…...

信息系统项目管理-论文写作方法之背景二

为响应国家政务服务“一网、一门、一次”改革&#xff0c;打破“信息孤岛”现象&#xff0c;打造线上线下相融合、多级联动的政务服务一体化平台。XX市行政审批局欲整合市局及下属13镇区、500多个村居委会政务服务中心业务&#xff0c;梳理人社、民政、卫计委、公积金、交通等多…...

使用ffmpeg命令实现视频文件间隔提取帧图片

将视频按每隔五秒从视频中提取一张图片 使用 ffmpeg 工具&#xff0c;通过设置 -vf&#xff08;视频过滤器&#xff09;和 -vsync 选项 命令格式 ffmpeg -i input_video.mp4 -vf "fps1/5" output_%03d.png 解释&#xff1a; -i input_video.mp4&#xff1a;指定输…...

我们项目要升级到flutter架构的几点原因

一、探索 Flutter打造卓越移动应用的新时代框架 在移动应用开发的世界里&#xff0c;Flutter已经成为了一个炙手可热的话题。诞生于Google的怀抱&#xff0c;Flutter以其独特的优势和理念&#xff0c;正在引领一场全球范围内的应用开发 ** 。本文将深入探讨Flutter项目的特点、…...

【简单好抄保姆级教学】javascript调用本地exe程序(谷歌,edge,百度,主流浏览器都可以使用....)

javascript调用本地exe程序 详细操作步骤结果 详细操作步骤 在本地创建一个txt文件依次输入 1.指明所使用注册表编程器版本 Windows Registry Editor Version 5.00这是脚本的第一行&#xff0c;指明了所使用的注册表编辑器版本。这是必需的&#xff0c;以确保脚本能够被正确解…...

ElasticSearch为什么不能在query阶段直接返回_id,从而避免fetch?

整理自Github的一个issue,也正好解答了我的疑惑 https://github.com/elastic/elasticsearch/issues/17159 提问 是否可以避免搜索的fetch阶段并仅返回文档ID&#xff1f;查询阶段结束时是否有_id&#xff0c;这样当我只需要_id时&#xff0c;fetch就多余了&#xff1f;可以通过…...

网安瞭望台第5期 :7zip出现严重漏洞、识别网络钓鱼诈骗的方法分享

国内外要闻 7 - Zip存在高危漏洞&#xff0c;请立刻更新 2024 年 11 月 24 日&#xff0c;do son 报道了 7 - Zip 中存在的一个高严重性漏洞 CVE - 2024 - 11477。7 - Zip 是一款广受欢迎的文件压缩软件&#xff0c;而这个漏洞可能会让攻击者在存在漏洞的系统中执行恶意代码。…...

获 2023 年度浙江省科学技术进步奖一等奖 | 网易数智日报

11 月 22 日&#xff0c;加快建设创新浙江因地制宜发展新质生产力动员部署会暨全省科学技术奖励大会在杭州隆重召开。浙江大学、网易数智等单位联合研发的“大规模结构化数据智能计算平台及产业化”项目获得 2023 年度浙江省科学技术进步奖一等奖。 加快建设创新浙江因地制宜发…...

SQL基础入门 —— SQL概述

目录 1. 什么是SQL及其应用场景 SQL的应用场景 2. SQL数据库与NoSQL数据库的区别 2.1 数据模型 2.2 查询语言 2.3 扩展性 2.4 一致性与事务 2.5 使用场景 2.6 性能与扩展性 总结 3. 常见的SQL数据库管理系统&#xff08;MySQL, PostgreSQL, SQLite等&#xff09; 3.…...

【附录】Rust国内镜像设置

目录 前言 &#xff08;1&#xff09;设置环境变量 &#xff08;2&#xff09;安装Rust &#xff08;3&#xff09;设置crates镜像 前言 本节课来介绍下如何在国内高速下载安装Rust和Rust依赖&#xff0c;由于网络原因&#xff0c;我们在安装Rust和下载项目依赖时都很慢&am…...

量化交易系统开发-实时行情自动化交易-8.2.发明者FMZ平台

19年创业做过一年的量化交易但没有成功&#xff0c;作为交易系统的开发人员积累了一些经验&#xff0c;最近想重新研究交易系统&#xff0c;一边整理一边写出来一些思考供大家参考&#xff0c;也希望跟做量化的朋友有更多的交流和合作。 接下来会对于发明者FMZ平台介绍。 发明…...

MATLAB —— 机械臂工作空间分析

系列文章目录 前言 本示例展示了如何使用可操作性指数对不同类型的机械手进行工作空间分析。工作空间分析是一种有用的工具&#xff0c;可用于确定机器人工作空间中最容易改变末端效应器位置和方向的区域。本示例的重点是利用不同的可操控性指数类型来分析各种机械手的工作空间…...

向日葵连接xrdp虚拟桌面

x2go的虚拟性没有那么好。而xrdp&#xff0c;可以实现较好的配置&#xff0c;并且能适应本机电脑的分辨率&#xff0c;非常方便。 配置xrdp可以参考这个&#xff1a; https://blog.csdn.net/weixin_54227557/article/details/143303803 然后就是重启相关服务了。 sudo pkill…...

AI智算-正式上架GPU资源监控概览 Grafana Dashboard

下载链接 https://grafana.com/grafana/dashboards/22424-ai-gpu-20241127/...

力扣原题《长度最小的子数组》,有序版(理想版最大值查找)纯手搓,已验证,方差版(考虑元素离散,大值周围全是小值的情况)在下一篇

理想版&#xff0c;大值周围是大值 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 示例…...

OneMore插件:让OneNote效率倍增的全方位解决方案

OneMore插件&#xff1a;让OneNote效率倍增的全方位解决方案 【免费下载链接】OneMore A OneNote add-in with simple, yet powerful and useful features 项目地址: https://gitcode.com/gh_mirrors/on/OneMore 当你在OneNote中处理复杂表格时&#xff0c;是否曾因缺乏…...

从巨鲸到万物生长:Claude Code如何颠覆AI开发,带你从对话走向Agent平台搭建!

Claude Code凭借其六大核心能力&#xff0c;将AI开发带入全新阶段。通过CLAUDE.md实现项目记忆增强&#xff0c;Skills固化可复用工作流&#xff0c;Sub-Agent处理专业化任务&#xff0c;MCP连接外部服务&#xff0c;Plug-In打包完整解决方案。本文深入解析这些功能&#xff0c…...

网络安全这个技能学会了,不考研也能迅速找到高薪工作

网络安全这个技能学会了&#xff0c;不考研也能迅速找到高薪工作 近几年“考研热”持续升温&#xff0c;报名人数和报录比屡创新高。据数据显示&#xff1a;2003年全国考研人数仅仅才70万&#xff0c;直至2017年考研人数才刚刚突破200万。而今年考研人数居高达457万&#xff0…...

staticFunctional:嵌入式零堆内存的std::function替代方案

1. staticFunctional&#xff1a;嵌入式系统中零动态内存开销的 std::function 替代方案1.1 设计动因与工程痛点在资源受限的嵌入式系统&#xff08;如 ARM Cortex-M0/M4、AVR、ESP32、Teensy 系列&#xff09;中&#xff0c;std::function的标准实现存在根本性兼容障碍。其典型…...

Flutter透明视频播放实战:用AlphaPlayer插件5分钟搞定礼物特效

Flutter透明视频播放实战&#xff1a;用AlphaPlayer插件5分钟搞定礼物特效 在移动应用开发中&#xff0c;炫酷的动画效果往往能显著提升用户体验&#xff0c;尤其是在社交、直播和游戏类应用中。透明视频特效作为其中一种高级表现形式&#xff0c;能够实现元素与背景的无缝融合…...

告别低效写作:盘点2026年标杆级的AI论文网站

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文网站&#xff0c;覆盖选题构思、文献整理、内容生成、格式排版全流程&#xff0c;帮你高效搞定论文写作。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首选&#xff…...

为什么你的Python多解释器程序总在崩溃?进程隔离、对象序列化与引用计数泄漏全链路诊断,立即修复

第一章&#xff1a;Python多解释器通信的底层本质与崩溃根源Python 多解释器&#xff08;Multi-Interpreter&#xff0c;PEP 684&#xff09;是 CPython 3.12 引入的核心机制&#xff0c;旨在实现真正的并行解释器隔离——每个解释器拥有独立的全局状态&#xff08;如 sys.modu…...

AI写论文不再难,4款AI论文生成工具带你开启高效写作之旅!

在2025年愈演愈烈的学术写作智能化趋势中&#xff0c;越来越多的人选择借助AI写论文工具。现实中许多这样的工具在撰写硕士、博士论文等长篇学术作品时&#xff0c;常常缺乏必要的理论深度&#xff0c;逻辑也显得比较松散。普通的AI论文写作工具显然无法满足这些专业写作的需求…...

Excel 技巧:一键批量填充空值

&#x1f680; 操作步骤选中区域首先&#xff0c;用鼠标选中包含空值的目标数据区域。定位空值按下快捷键 Ctrl G 打开“定位”对话框&#xff1a;点击左下角的 「定位条件...」。选择 「空值」。点击「确定」。✅ 此时&#xff0c;区域内所有空白单元格已被高亮选中。输入公式…...