《代码随想录》Day31打卡!

《代码随想录》贪心算法:合并区间

本题的完整题目如下所示:

image.png

本题的完整思路如下所示: 1.本题依然是先对数组的左边界进行排序。将数组的第一个元素赋值给current。 2.遍历数组,判断current中的右边界和当前元素的左边界是否有重叠,如果有,则说明是重叠区间,需要合并。如果没有则将第i个数组赋值给current,并将current添加到结果数组中。 3.合并区间:将current的右边界赋值为max(current的右边界和第i个元素的右边界),注意是修改current数组的右边界,而不是原数组,此时也不需要将current添加到结果数组中。 本题的完整代码如下所示: class Solution { public int merge(int intervals) { // 按区间的起始位置升序排序 Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0]));

    List<int[]> res = new ArrayList<>();int[] current = intervals[0];res.add(current);for(int i = 1; i < intervals.length; i++) {if(current[1] >= intervals[i][0]) {current[1] = Math.max(current[1], intervals[i][1]);}else{current = intervals[i];res.add(current);}}// 将结果转换为二维数组返回return res.toArray(new int[res.size()][]);
}

}

《代码随想录》贪心算法:单调递增的数字

本题的完整题目如下所示:

image.png

本题的完整思路如下: 1.首先本题是对数字的每一位都进行操作,所以先把数字转换为字符串类型进行操作,方便对每一位进行遍历。 2.本题的重点是从右向左对转换后的字符串进行遍历,判断其是否满足单调递增。只要左边的数字大于右边的数字,此时将左边的数字减去1,此时将该数字右边的所有数字都变为9,这样才能保证最后得到的数字是最大的满足条件的数字。 3.最后将字符串转换为整数返回即可。 本题的完整代码如下所示:

//738.单调递增的数字
class Solution16 {public int monotoneIncreasingDigits(int n) {String str = String.valueOf(n); // 将整数转换为字符串StringBuilder sb = new StringBuilder(str);
​// 从右向左检查是否满足单调递增for (int i = sb.length() - 1; i > 0; i--) {if (sb.charAt(i) < sb.charAt(i - 1)) {// 当前位小于前一位,将前一位减 1,当前位以及右侧所有位设置为 '9'sb.setCharAt(i - 1, (char)(sb.charAt(i - 1) - 1));for (int j = i; j < sb.length(); j++) {sb.setCharAt(j, '9');}}}
​// 将最终结果转为整数并返回return Integer.parseInt(sb.toString());}
}

《代码随想录》贪心算法:监控二叉树

这道题没有做,看到是hard,所以偷懒了,二刷的时候做!!!

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

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

相关文章

windows及linux 安装 Yarn 4.x 版本

1. 确保系统环境准备 a. 安装 Node.js Yarn 依赖于 Node.js,所以需要先安装 Node.js。前往 Node.js 官网 下载并安装适合你的 Windows 版本的 Node.js(推荐 LTS 版本)。安装完成后,打开命令提示符(CMD)或 PowerShell,验证安装:node -v npm -v如果显示版本号,则表示安…

KL 散度:多维度解读概率分布间的隐秘 “距离”

深入理解KL散度&#xff1a;从多维度全面剖析 损失函数相关文章&#xff08;置顶&#xff09; 1. KL 散度&#xff1a;多维度解读概率分布间的隐秘 “距离” 2. 熵与交叉熵&#xff1a;从不确定性角度理解 KL 散度 3. 机器学习、深度学习关于熵你所需要知道的一切 引言 KL散即…

Spring bean的生命周期和扩展

bean生命周期流程 生命周期扩展处理说明实例化:createBeanInstance 构造方法&#xff0c; 如Autowired的构造方法注入依赖bean 如UserService构造方法注入AppDAO&#xff1a; Autowired public UserService(AppDAO appDAO) {System.out.println("Autowired appDAO:"…

node-sass@4.14.1报错的最终解决方案分享

输入npm i全安装文件所需的依赖的时候&#xff0c;博主是使用sass去书写的&#xff0c;使用的是node-sass4.14.1和sass-loader7.3.1的版本的&#xff0c;安装的时候老是出现错误&#xff0c; node-sass4.14.1版本不再被支持的原因 node-sass 是一个基于 LibSass 的 Node.js 绑…

设计模式(观察者模式)

设计模式&#xff08;观察者模式&#xff09; 第三章 设计模式之观察者模式 观察者模式介绍 观察者模式&#xff08;Observer Design Pattern&#xff09; 也被称为发布订阅模式 。模式定义&#xff1a;在对象之间定义一个一对多的依赖&#xff0c;当一个对象状态改变的时候…

将光源视角的深度贴图应用于摄像机视角的渲染

将光源视角的深度贴图应用于摄像机视角的渲染是阴影映射&#xff08;Shadow Mapping&#xff09;技术的核心步骤之一。这个过程涉及到将摄像机视角下的片段坐标转换到光源视角下&#xff0c;并使用深度贴图来判断这些片段是否处于阴影中。 1. 生成光源视角的深度贴图 首先&…

PyCharm 的安装与使用(Window)

1 PyCharm 简介 PyCharm 是一款由 JetBrains 公司开发的专门用于 Python 语言开发的集成开发环境&#xff08;IDE&#xff09;。以下是其相关介绍&#xff1a; 1.1 特点与功能 智能代码编辑&#xff1a;提供高度智能化的代码编辑器&#xff0c;支持语法高亮、自动补全、代码重…

(vue)el-table-column type=“selection“表格选框怎么根据条件添加禁选

(vue)el-table-column type"selection"表格选框怎么根据条件添加禁选 html <el-table:data"tableData"style"width: 100%"><el-table-columntype"selection"width"55":selectable"checkSelectable">…

Vue3 网络请求

文章目录 Vue3 网络请求CORS问题ajaxfetchaxios Vue3 网络请求 CORS问题 同源&#xff1a;指的是当前用户所在的URL与被请求的URL的协议名、域名、端口必须完全相同。一旦有一个或多个不同&#xff0c;就是非同源请求&#xff0c;也就是我们经常说的跨域请求&#xff0c;简称…

C# 之某度协议登录,JS逆向,手机号绑定,获取CK

.NET兼职社区 .NET兼职社区 .NET兼职社区 .NET兼职社区 有需要指导&#xff0c;请私信我留言V或者去社区找客服。

深入Android架构(从线程到AIDL)_20 IPC的Proxy-Stub设计模式02

2、 IBinder接口的一般用途 前言 一般用途 Android的IPC框架仰赖单一的IBinder接口。此时Client端调用IBinder接口的transact()函数&#xff0c;透过IPC机制而调用到远方(Remote)的onTransact()函数。在Java层框架里&#xff0c; IBinder接口实现于Binder基类&#xff0c;如下…

C++ Json库的使用

1.Json库的使用&#xff0c;包含C Json的创建、读写、字符串Json互转等&#xff0c;覆盖日常使用场景 前提&#xff1a;按照参考的文章部署好nlohmann/json 上代码 #include <iostream> #include <fstream> #include "nlohmann/json.hpp" using json n…

初学stm32 --- ADC单通道采集

目录 ADC寄存器介绍&#xff08;F1&#xff09; ADC控制寄存器 1(ADC_CR1) ADC控制寄存器 2(ADC_CR2) ADC采样时间寄存器1(ADC_SMPR1) ADC采样时间寄存器2(ADC_SMPR2) ADC规则序列寄存器 1(ADC_SQR1) ADC规则序列寄存器 2(ADC_SQR2) ADC规则序列寄存器 3(ADC_SQR3) AD…

FPGA技术的深度理解

目录 引言 FPGA的基本原理 结构组成 工作原理 FPGA的设计流程 设计阶段 编程阶段 实现阶段 FPGA的应用领域 FPGA编程技巧和示例代码 编程技巧 示例代码 结论 引言 FPGA&#xff08;现场可编程门阵列&#xff09;是一种可编程的集成电路&#xff0c;它允许用户根据…

@SneakyThrows 注解详解

SneakyThrows 注解详解 1. 基本介绍 SneakyThrows 是 Lombok 提供的注解&#xff0c;用于简化异常处理&#xff0c;自动生成 try-catch 代码块&#xff0c;将检查型异常转换为非检查型异常。 2. 使用对比 2.1 传统写法 public String readFile(String path) {try {return …

【经典神经网络架构解析篇】【1】LeNet网络详解:模型结构解析、优点、实现代码

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

qml SpringAnimation详解

1. 概述 SpringAnimation 是 Qt Quick 中用于模拟弹簧效果的动画类。它通过模拟物体在弹簧力作用下的反应&#xff0c;产生一种振荡的动画效果&#xff0c;常用于模拟具有自然回弹、弹性和振动的动态行为。这种动画效果在 UI 中广泛应用&#xff0c;特别是在拖动、拉伸、回弹等…

day03-前端Web-Vue3.0基础

目录 前言1. Vue概述2. 快速入门2.1 需求2.2 步骤2.3 实现 3. Vue指令3.1 介绍3.2 v-for3.2.1 介绍3.2.2 演示3.2.3 v-for的key3.2.4 案例-列表渲染 3.3 v-bind3.3.1 介绍3.3.2 演示3.3.3 案例-图片展示 3.4 v-if & v-show3.4.1 介绍3.4.2 案例-性别职位展示 3.6 v-model3.…

Jenkins pipeline 发送邮件及包含附件

Jenkins pipeline 发送邮件及包含附件 设置邮箱开启SMTP服务 此处适用163 邮箱 开启POP3/SMTP服务通过短信获取TOKEN &#xff08;保存TOKEN, 后面Jenkins会用到&#xff09; Jenkins 邮箱设置 安装 Build Timestamp插件 设置全局凭证 Dashboard -> Manage Jenkins …

JSON.stringify 实现深度克隆的缺陷

在前端开发中&#xff0c;深克隆&#xff08;Deep Clone&#xff09;和浅克隆&#xff08;Shallow Clone&#xff09;是常见的操作。浅克隆和深克隆的区别主要体现在对象内部嵌套对象的处理方式上。 1. 浅克隆&#xff08;Shallow Clone&#xff09; 浅克隆是指创建一个新对象…