LeetCode 36天 | 435.无重叠区域 763.划分字母区间 56.合并区间

435. 无重叠区间
左边排序,右边裁剪为当前最小的

class Solution {
public:// 按照左边界排序static bool cmp(vector<int> a, vector<int> b) {return a[0] < b[0];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {int res = 0;sort(intervals.begin(), intervals.end(), cmp);// i从1开始计数for (int i = 1; i<intervals.size(); i++) {// 仅当与上一条产生重叠时处理if (intervals[i][0] < intervals[i-1][1]) {res++;// 重叠时右边界统一切为最小值intervals[i][1] = min(intervals[i][1], intervals[i-1][1]);}}return res;}
};

763. 划分字母区间
自己写出来的题,虽然之前做过一遍了。
自己的写法虽然比较难看,但是也列出来了。

class Solution {
public:// 第二遍做,自己写出来的,耶耶耶vector<int> partitionLabels(string s) {unordered_map<char,int> umap;// 打印每个字符出现的最远记录for (int i = 0; i<s.size(); i++) {umap[s[i]] = i;}// 打印输出查看map记录for (auto [key,value]:umap){cout<<key<<" "<<value<<endl;}vector<int> res;// 当前字符串的最远角标int last = 0;// 当前字符串的起始角标int lastIndex = 0;for (int i = 0; i < s.size(); i++) {if (umap[s[i]] == i && last == i){res.push_back(i-lastIndex+1);lastIndex = i+1;last = i+1;}else {last = max(last, umap[s[i]]);}}return res;}
};

再给一个卡尔的写法

class Solution {
public:vector<int> partitionLabels(string S) {int hash[27] = {0}; // i为字符,hash[i]为字符出现的最后位置for (int i = 0; i < S.size(); i++) { // 统计每一个字符最后出现的位置hash[S[i] - 'a'] = i;}vector<int> result;int left = 0;int right = 0;for (int i = 0; i < S.size(); i++) {right = max(right, hash[S[i] - 'a']); // 找到字符出现的最远边界if (i == right) {result.push_back(right - left + 1);left = i + 1;}}return result;}
};

56. 合并区间

重叠区域的题目大都要按左边界先排序。学了个lambda表达式。可以直接将一个区域放入结果集用res.back()[1]来更新右边界,这是一个好方法。

class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> res;if (intervals.size() == 0) return res;// 按左边界排序,lambda表达式sort(intervals.begin(), intervals.end(), [](const vector<int>& a, const vector<int>& b){return a[0]<b[0];});res.push_back(intervals[0]);for (int i = 1; i<intervals.size(); i++) {// 如果左边界小于等于加入的尾部的右边界,更新尾部的右边界if (intervals[i][0] <= res.back()[1]) {res.back()[1] = max(res.back()[1],intervals[i][1]);}else {// 直接将下一段加入结果集res.push_back(intervals[i]);}}return res;}
};

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

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

相关文章

JAVA常见IO模型 BIO、NIO、AIO总结

BIO Blocking IO 同步阻塞型IO。当系统进行IO读写的时候&#xff0c;会阻塞&#xff0c;直到IO读写完毕。比如调用系统Read后&#xff0c;需要将内核空间的数据读取到用户空间。需要等待内核空间 数据准备&#xff0c;数据就绪&#xff0c;拷贝数据&#xff0c;线程一直处于阻…

CSS之重绘与回流

重绘&#xff08;Repaint&#xff09; 当页面中元素样式的改变并不影响它在文档流中的位置时&#xff08;例如改变颜色、阴影等&#xff09;&#xff0c;浏览器会进行重绘&#xff0c;即重新绘制元素的外观。 回流&#xff08;Reflow&#xff09; 当元素的大小、位置、隐藏等…

IO进程:fread\fwrite图像拷贝,read\write文件拷贝,时间函数

1.使用fread、fwrite实现图片拷贝 程序代码&#xff1a; 1 #include<myhead.h>2 int main(int argc, const char *argv[])3 {4 //判断传入文件个数5 if(argc!3)6 {7 printf("input file error\n");8 printf("usage:./a.out …

【QCA6174】SDX12+QCA6174驱动屏蔽120/124/128信道修改方案

SDX12基线版本 SDX12.LE.1.0-00215-NBOOT.NEFS.PROD-1.39743.1 问题描述 对于欧洲国家来说,默认支持DFS信道,但是有三个信道比较特殊,是天气雷达信道,如下图所示120、124、128,天气雷达信道有个特点就是在信号可以发射之前需要检测静默15min,如果信道自动选择到了天气雷达…

情感分析入门:使用Python和TextBlob进行情感分析

简介 情感分析是自然语言处理领域的一个重要任务&#xff0c;它涉及分析文本中的情感和情绪&#xff0c;如积极、消极、中性等。TextBlob是一个简单易用的自然语言处理工具库&#xff0c;其中包含了情感分析功能。本文将介绍如何使用Python编程语言和TextBlob库进行情感分析&a…

洪泛法:计算机网络中的信息洪流——原理、优化与应用全景解析

洪泛法 - 概述 洪泛法&#xff08;Flooding&#xff09;是计算机网络中一种简单直接的数据传输技术。它不依赖于网络中的路由表或者路径选择算法。在洪泛法中&#xff0c;每个接收到消息的节点将消息复制并发送给除了消息来源外的所有其他节点。这个过程一直重复&#xff0c;直…

GB/T 29418-2023 塑木复合材料挤出型材性能检测

塑木复合材料是指由木质或其他纤维素基材料和热塑性塑料经配混成型加工制成的复合材料&#xff0c;又称为木塑复合材料&#xff0c;塑木复合材料多用于木塑地板&#xff0c;围栏等产品&#xff0c;用于户外花园&#xff0c;公园等场所。 GB/T 29418-2023 塑木复合材料挤出型材…

微信多开(无需关闭软件)优化

C实现微信多开 原理 解除mutex独占 同时改用新的API&#xff0c;不再使用废弃的windows API 源码 #include <aclapi.h> #include <shlwapi.h> #include <windows.h> #include <iostream> #pragma comment(lib, "Shlwapi.lib")static bo…

BI 数据分析,数据库,Office,可视化,数据仓库

AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作 PowerBI 商业智能 68集 Mysql 8.0 54集 Oracle 21C 142集 Office 2021实战应用 Python 数据分析实战&#xff0c; ETL Informatica 数据仓库案例实战 51集 Excel 2021实操 100集&#xff0c; Excel 2021函数大全 80集 Excel 2021…

【Java代码洁癖】NO.1 集合创建冗余,不能忍

反例 public Collection<String> sort(Collection<String> foos){List<String> sortedFoos new ArrayList<>(foos);Collection.sort(sortedFoos);return sortedFoos; } 正例 public Collection<String> sort(Collection<String> foos)…

阿里云服务器镜像选择方法详解,这么选就对了!

阿里云服务器镜像怎么选择&#xff1f;云服务器操作系统镜像分为Linux和Windows两大类&#xff0c;Linux可以选择Alibaba Cloud Linux&#xff0c;Windows可以选择Windows Server 2022数据中心版64位中文版&#xff0c;阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器操…

HarmonyOS 鸿蒙应用开发(十一、面向鸿蒙开发的JavaScript基础)

ArkTS 是HarmonyOS&#xff08;鸿蒙操作系统&#xff09;原生应用开发的首选语言。它是用于构建用户界面的一种TypeScript方言&#xff0c;扩展了TypeScript以适应HarmonyOS生态系统的UI开发需求。ArkTS 融合了TypeScript的静态类型系统和现代UI框架的设计理念&#xff0c;为开…

练习题解(关于最短路径)

目录 1.租用游艇 2.邮递员送信 3.【模板】单源最短路径&#xff08;标准版&#xff09; 1.租用游艇 P1359 租用游艇 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 输入数据&#xff1a; 3 5 15 7 因为这道题数据不大&#xff0c;所有我们直接使用Floyd 算法。 这道题大…

Linux系统——防火墙Firewalld

目录 一、firewalld介绍 1.归入zone顺序 2.firewalld zone分类 3.预定义服务 二、图形化操作 1.打开firewalld图形化界面 2.以http服务为例&#xff0c;打开httpd服务 3.修改端口号 三、命令行配置 1.基础配置 2.查看现有firewalld设置 3.设置查看默认区 4.添加源…

字符编码处理相关工具类

目录 1. Base64工具类 -- Base64 2. Md5加密方法 -- Md5Utils 1. Base64工具类 -- Base64 /*** Base64工具类* */ public final class Base64 {static private final int BASELENGTH 128;static private final int LOOKUPLENGTH 64;static p…

SpringBoot返回JSON数据是少8小时

问题 数据库保存时间是北京时区查询出来的和数据库中保存的时间一样是北京时区的经过SpringMVC转换为JSON字符串后少了8个小时 解决 在实体类时间属性上使用 JsonFormat(pattern “yyyy-MM-dd HH:mm:ss”, timezone “GMT8”) &#xff0c;未生效在application.properties…

类(接口)图几种箭头含义

导语 在平时的开发中&#xff0c;难免会遇到画UML图的时候&#xff0c;也就是我们所说的类图&#xff0c;但是UML图中的箭头多种多样&#xff0c;所代表的含义也是各不相同&#xff0c;今天我们就来说说这几种箭头所代表的含义。 1 泛化 概念&#xff1a;泛化表示一个更泛化的元…

CTFshow web(php命令执行 55-59)

web55 <?php /* # -*- coding: utf-8 -*- # Author: Lazzaro # Date: 2020-09-05 20:49:30 # Last Modified by: h1xa # Last Modified time: 2020-09-07 20:03:51 # email: h1xactfer.com # link: https://ctfer.com */ // 你们在炫技吗&#xff1f; if(isset($_GET[…

Windows 命令提示符(CMD)操作(二):系统信息和管理

二、系统信息和管理 2.1 systeminfo 显示系统信息 一般语法&#xff1a; systeminfo [/s <hostname>] [/u <username> [/p [<password>]]] [/fo {TABLE | LIST | CSV}] [/nh]其中&#xff0c;常见的选项包括&#xff1a; /s <hostname>&#xff1…

Jetpack 之Glance+Compose实现一个小组件

Glance&#xff0c;官方对其解释是使用 Jetpack Compose 样式的 API 构建远程 Surface 的布局&#xff0c;通俗的讲就是使用Compose风格的API来搭建小插件布局&#xff0c;其最新版本是2022年2月23日更新的1.0.0-alpha03。众所周知&#xff0c;Compose样式的API与原生差别不小&…