算法通关村第十七关 | 白银 | 贪心高频问题

1.区间问题

1.1 判断区间是否重叠

原题:力扣252.

public boolean canAttendMeetings(int[][] intervals) {// 按照会议开始时间升序排序Arrays.sort(intervals, (v1, v2) -> v1[0] - v2[0]);for (int i = 1; i < intervals.length; i++) {// 比较上一个会议的结束时间和下一个会议的开始时间if (intervals[i][0] < intervals[i - 1][1]) {return false;}}return true;
}

1.2 合并区间

原题:力扣56.

public int[][] merge(int[][] intervals) {Arrays.sort(intervals, (v1, v2) -> v1[0] - v2[0]);int[][] res = new int[intervals.length][2];int index = -1;for (int[] interval : intervals) {if (index == -1 || interval[0] > res[index][1]) {res[++index] = interval;} else {res[index][1] = Math.max(res[index][1], interval[1]);}}return Arrays.copyOf(res, index + 1);
}

1.3 插入区间

原题:力扣57.

public int[][] insert(int[][] intervals, int[] newInterval) {int[][] res = new int[intervals.length + 1][2];int index = 0;int i = 0;// 插入区间前while (i < intervals.length && intervals[i][1] < newInterval[0]) {res[index++] = intervals[i++];}// 插入区间while (i < intervals.length && intervals[i][0] <= newInterval[1]) {newInterval[0] = Math.min(intervals[i][0], newInterval[0]);newInterval[1] = Math.max(intervals[i][1], newInterval[1]);i++;}res[index++] = newInterval;// 插入区间后while (i < intervals.length) {res[index++] = intervals[i++];}return Arrays.copyOf(res, index);
}

2.字符串分割

原题:力扣763.

统计字符的最远出现下标当作分割点。

public List<Integer> partitionLabels(String s) {List<Integer> list = new LinkedList<>();int[] edge = new int[26];char[] chars = s.toCharArray();for (int i = 0; i < chars.length; i++) {edge[chars[i] - 'a'] = i;}int index = 0;int last = -1;for (int i = 0; i < chars.length; i++) {index = Math.max(index, edge[chars[i] - 'a']);if (i == index) {list.add(i - last);last = i;}}// list 存储的是分割字符串后每个字符串的长度return list;
}

3.加油站问题

原题:力扣134.

首先要总油量大于等于消耗量,保证能跑完一圈。

然后计算路过每个加油站的剩余量,即该加油站的汽油量减去到下一个加油站要用的量。负数代表不能作为起始位置,正数有可能为起始位置。

public int canComplateCircuit(int[] gas, int[] cost) {int curSum = 0;int totalSum = 0;int start = 0;for (int i = 0; i < gas.length; i++) {// 计算每个加油站的剩余量curSum += gas[i] - cost[i];// 计算总剩余量totalSum += gas[i] - cost[i];if (curSum < 0) {// 移动起始位置start = i + 1;curSum = 0;}}if (totalSum < 0) {return -1;}return start;
}

如果对您有帮助,请点赞关注支持我,谢谢!❤
如有错误或者不足之处,敬请指正!❤
个人主页:星不易 ❤
算法通关村专栏:不易|算法通关村 ❤

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

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

相关文章

【无标题】树莓派 4B 多串口配置

0. 实验准备以及原理 0.1 实验准备 安装树莓派官方系统的树莓派 4B&#xff0c;有 python 环境&#xff0c;安装了 serial 库 杜邦线若干 屏幕或者可以使用 VNC 进入到树莓派的图形界面 0.2 原理 树莓派 4B 有 UART0&#xff08;PL011&#xff09;、UART1&#xff08;mini UAR…

散点图,何须图,折线图混放在一个echarts

散点图&#xff0c;何须图&#xff0c;折线图混放在一个echarts option {tooltip: {trigger: axis,axisPointer: {type: cross,crossStyle: {color: #999}}},legend: {data:[盒须图1,盒须图2,折线图,散点图]},xAxis: [{type: category,data: [周一,周二,周三,周四,周五,周六…

【Linux】tmux简单使用

它允许你在一个终端窗口中创建多个终端会话&#xff0c;并在它们之间进行切换。以下是tmux的一些主要用途和功能&#xff1a; 多窗口&#xff1a; Tmux允许你在一个终端中创建多个窗口。每个窗口可以包含一个或多个终端会话&#xff0c;你可以轻松地在这些窗口之间切换。面板分…

学习数据结构第一步(必看)——初识集合框架

一&#xff0c;学习数据结构前置知识 目录 一&#xff0c;学习数据结构前置知识 二&#xff0c;什么是数据结构&#xff1f; 1.什么是数据结构&#xff1f; 2.容器背后对应的数据结构 3.相关Java知识 4.什么是算法&#xff1f; 三&#xff0c;什么是集合&#xff1f; …

【lombok】从easyExcel read不到值到cglib @Accessors(chain = true)隐藏的大坑

背景: 在一次使用easyExcel.read 读取excel时&#xff0c;发现实体类字段没有值&#xff0c;在反复测试后&#xff0c;发现去掉Accessors(chain true)就正常了&#xff0c;为了验证原因&#xff0c;进行了一次代码跟踪 由于调用链路特别长&#xff0c;只列举出部分代码&#x…

Halcon参考手册语义分割和边缘提取知识总结

1.1 语义分割和边缘提取介绍 通过语义分割&#xff0c;我们使用深度学习(DL)网络将输入图像的每个像素分配给一个类。 图(1)语义分割示例 在图(1)中&#xff0c;输入图像的每个像素都被分配给一个类&#xff0c;但是苹果的三个不同实例和橘子的两个不同实例都不是可区分的对象…

Canal实时同步MySQL数据到ES

一、canal简介 canal主要用途是对MySQL数据库增量日志进行解析&#xff0c;提供增量数据的订阅和消费&#xff0c;简单说就是可以对MySQL的增量数据进行实时同步&#xff0c;支持同步到MySQL、Elasticsearch、HBase等数据存储中去。 早期阿里巴巴因为杭州和美国双机房部署&…

typescript个人学习笔记

https://ts.xcatliu.com/basics/primitive-data-types.html 深受启发 1.剑谱第一页&#xff0c;初始化ts outDir表示把ts编译成js文件&#xff0c;文件编译后存放的位置 2.类型声明 undefined可以赋值给其他类型

企业电子招投标采购系统源码之鸿鹄电子招投标系统+电子招投标的组成

鸿鹄招投标系统的功能描述 1、门户管理&#xff1a;用户可通过门户页面查看所有公告信息及相关通知信息&#xff0c;包括招标公告、非招标公告、系统通知和政策法规等板块。 2、立项管理&#xff1a;企业用户可以对需要采购的项目进行立项申请&#xff0c;并提交审批&#xff0…

1013 数素数

令 Pi​ 表示第 i 个素数。现任给两个正整数 M≤N≤104&#xff0c;请输出 PM​ 到 PN​ 的所有素数。 输入格式&#xff1a; 输入在一行中给出 M 和 N&#xff0c;其间以空格分隔。 输出格式&#xff1a; 输出从 PM​ 到 PN​ 的所有素数&#xff0c;每 10 个数字占 1 行&…

【Cisco Packet Tracer】路由器实验 静态路由/RIP/OSPF/BGP

本教程讲解路由器的静态IP配置、RIP、OSPF、BGP等实验内容。 一、基本设置 绘制以下拓扑结构&#xff1a; PC0设置&#xff1a; PC1设置&#xff1a; Router0端口0设置&#xff1a; Router0端口1设置&#xff1a; Router1端口0设置&#xff1a; Router1端口1设置&#xff1a…

mysql数据库学习笔记(2)

又是学习数据库的一天&#xff0c;今天学的不多&#xff0c;昨天主要是对数据库进行各种操作&#xff0c;今天对表进行各种操作&#xff0c;挺有意思的&#xff0c;让我们一起看看都有哪些内容。 1.表操作-修改 (1)添加字段 ALTER TABLE 表名 ADD 字段名 类型&#xff08;长度…

LAMP安装部署网站

目录 什么是LAMP? 实验&#xff08;搭建一个论坛&#xff09; 一&#xff0c;安装apache 1.关闭防火墙&#xff0c;将安装Apache所需软件包传到/opt目录下 2.安装环境依赖包 3.配置软件模块 4.编译及安装 5.优化配置文件路径&#xff0c;并把httpd服务的可执行程序文件…

跨国企业在跨境数据传输时需要注意的几点

对于跨国企业而言&#xff0c;跨境数据传输是一个极为关键的组成部分。这不仅涉及到数据的安全性、合规性和效率&#xff0c;还直接关系到企业的竞争力和未来发展前景。因此&#xff0c;在进行跨境数据传输时&#xff0c;企业需要特别关注以下几个关键点&#xff0c;并采取相应…

Geotrust中的dv ssl证书

DV SSL数字证书是入门级的数字证书&#xff0c;Geotrust的子品牌RapidSSL旗下的SSL数字证书产品都是入门级的SSL数字证书——DV基础型单域名SSL证书和DV基础型通配符SSL证书。今天就随SSL盾小编了解Geotrust旗下的DV SSL证书。 1.Geotrust旗下的DV基础型单域名SSL证书能够保护…

程序员的养生指南?可不只是身体上面的哟?

程序员是一种常见的职业&#xff0c;也是一种充满挑战和压力的职业。程序员需要长时间地坐在电脑前&#xff0c;编写、调试、优化代码&#xff0c;解决各种复杂的问题。这样的工作方式不仅对身体造成了负担&#xff0c;也对心理产生了影响。因此&#xff0c;程序员需要注意自己…

浪涌Surge整改的意义与分析?|深圳比创达电子EMC

浪涌Surge是指电器开关或突变引起的短暂电流过高的现象。当电器设备在开关、中断或突变的瞬间&#xff0c;电流会剧烈变化&#xff0c;造成电压的瞬时上升&#xff0c;这就是浪涌Surge。 在日常生活中&#xff0c;浪涌Surge可能会导致电器设备的损坏&#xff0c;或者对人身安全…

【Proteus仿真】【STM32单片机】定时智能插座开关

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使LCD1602液晶&#xff0c;DS18B20温度传感器、按键、蜂鸣器、继电器开关、HC05蓝牙模块等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602…

1032 挖掘机技术哪家强

为了用事实说明挖掘机技术到底哪家强&#xff0c;PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。 输入格式&#xff1a; 输入在第 1 行给出不超过 105 的正整数 N&#xff0c;即参赛人数。随后 N 行&#xff0c;每行给出一位参赛者的信息和成绩…

js 生成分享码或分享口令

代码 function getShareToken(length) {var characters ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789;var shareToken ;for (var i 0; i < length; i) {var randomIndex Math.floor(Math.random() * characters.length);var randomChar character…