网站美工设计详细步骤珠海市手机网站建设公司

news/2025/10/4 21:10:41/文章来源:
网站美工设计详细步骤,珠海市手机网站建设公司,wordpress教程 付费,网站logo图标文章目录 435.无重叠区间按右边界排序CPP代码 按左边界排序如何判断相邻区间是否重叠如何判断一下一个区间与当前相邻区间是否重叠总结CPP代码 763.划分字母区间思路伪代码实现CPP代码 56. 合并区间思路CPP代码 435.无重叠区间 力扣题目链接 文章链接#xff1a;435.无重叠区间… 文章目录 435.无重叠区间按右边界排序CPP代码 按左边界排序如何判断相邻区间是否重叠如何判断一下一个区间与当前相邻区间是否重叠总结CPP代码 763.划分字母区间思路伪代码实现CPP代码 56. 合并区间思路CPP代码 435.无重叠区间 力扣题目链接 文章链接435.无重叠区间 视频链接贪心算法依然是判断重叠区间 | LeetCode435.无重叠区间 状态排序顺序很重要决定了我们如何处理后续逻辑。对于按右边界排序我们只要抓住分割线即可每次更新分割线说明就有非交叉区间 想都不用想本题首先要求的肯定就是进行排序让为了让我们后续更好进行操作。 并且可以很直观得推导出我们的贪心策略 局部最优——当前区间与相邻两个区间是否重叠这里是非常有技巧的具体可以看下面的思路 全局最优——找出所有的重叠区间 按右边界排序 我们先按右边界进行排序然后从左向右记录非交叉区间的个数。最后用区间总数减去非交叉区间的个数就是需要移除的区间个数了。 在记录非交叉区间的个数也是很需要技巧的 总之一句话最重要的点就在于找到区间的分割线每次遇到分割线我们就记录一次非交叉区间个数。比如上文中更新了两次分割线所以非交叉区间是3。所以在代码表现上也是比较直观的。 基于以上代码的一个重要前提就是区间是按照右边界来排序的 CPP代码 class Solution { public:// 按照区间右边界排序static bool cmp (const vectorint a, const vectorint b) {return a[1] b[1];}int eraseOverlapIntervals(vectorvectorint intervals) {if (intervals.size() 0) return 0;sort(intervals.begin(), intervals.end(), cmp);int count 1; // 记录非交叉区间的个数int end intervals[0][1]; // 记录区间分割点for (int i 1; i intervals.size(); i) {if (end intervals[i][0]) { //与每个区间的左边界比较end intervals[i][1]; //更新分割线count;}}return intervals.size() - count;} };按左边界排序 对于左边界排序这里拿 intervals [[1,100],[11,22],[1,11],[2,12]]举例 排序后intervals [[1,100],[1,11],[2,12],[11,22]]。如果我们按照右边界排序的处理还能行吗。简单推导一下这样会导致我们的最终结果是3因为end永远都无法更新程序认为只有一条分割线也就是count 1。 那么如果按照左边界来排序应该怎么写呢 如何判断相邻区间是否重叠 如果当前区间的左边界[1, 11]大于等于上一个区间的右边界[1, 100]。说明相邻区间不重叠如果不满足该情况那肯定说明区间重叠。 这里的count表示的是重叠区间的个数。 end在此处仍然表示的是区间分割点。 if (intervals[i-1][0] intervals[i][1]) end intervals[i][1]; else {count; //记录我们重叠了多少个区间 }如何判断一下一个区间与当前相邻区间是否重叠 要首先计算出之前我们判断的相邻区间的最小边界左边界的最小值和我们下一个区间的左边界是否重叠。 else {count;end min(end, intervals[i][1]) }这里num[i][1]min(nums[i-1][1], nums[i][1])等到i遍历到下一个区间应该和之前两个相邻区间的最小右边界比较如果当前i区间的左边界要大的话那么说明不是重叠区间。 总结 左边界的思想一句话就是如果发现了重叠区间我们就进行更新新的分割点并且count CPP代码 class Solution { public:static bool cmp (const vectorint a, const vectorint b) {return a[0] b[0]; // 改为左边界排序}int eraseOverlapIntervals(vectorvectorint intervals) {if (intervals.size() 0) return 0;sort(intervals.begin(), intervals.end(), cmp);int count 0; // 注意这里从0开始因为是记录重叠区间int end intervals[0][1]; // 记录区间分割点for (int i 1; i intervals.size(); i) { if (intervals[i][0] end) end intervals[i][1]; // 无重叠的情况else { // 重叠情况 end min(end, intervals[i][1]);count;}}return count;} };# 精简版 class Solution { public:static bool cmp (const vectorint a, const vectorint b) {return a[0] b[0]; // 改为左边界排序}int eraseOverlapIntervals(vectorvectorint intervals) {if (intervals.size() 0) return 0;sort(intervals.begin(), intervals.end(), cmp);int count 0; // 注意这里从0开始因为是记录重叠区间for (int i 1; i intervals.size(); i) {if (intervals[i][0] intervals[i - 1][1]) { //重叠情况intervals[i][1] min(intervals[i - 1][1], intervals[i][1]);count;}}return count;} };763.划分字母区间 力扣题目链接 文章链接763.划分字母区间 视频链接贪心算法寻找最远的出现位置 LeetCode763.划分字母区间 状态 本题其实就是一句话“面多了加水水多了加面直到刚刚好”。 这里完全不是贪心的思路就是全局的一个模拟主要它也属于重叠区间的问题。 思路 思路上还是很难想到的。 我们在遍历过程中相当于找到每一个字母出现的边界如果找到之前遍历过的所有字母的最远边界说明这个边界就是分割点了。 所以分为如下两步 统计每个字符最后出现的位置从头遍历字符并更新字符的最远出现下标如果找到字符最远出现位置下标和当前下标相等了则找到了分割点 我们需要记录每个字符出现的最后位置如图 伪代码实现 统计每一个字符最后出现的位置 int hash[27] {0}; //i为字符hash[i]为字符出现的最后位置 for (int i 0; i S.size(); i) {hash[S[i] - a] i; }定义变量 vectorint 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;} }CPP代码 class Solution { public:vectorint partitionLabels(string S) {int hash[27] {0}; // i为字符hash[i]为字符出现的最后位置for (int i 0; i S.size(); i) { // 统计每一个字符最后出现的位置hash[S[i] - a] i;}vectorint 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. 合并区间 力扣题目链接 文章链接56. 合并区间 视频链接贪心算法合并区间有细节LeetCode56.合并区间 状态 思路 本题同样也是重叠区间的问题。 区别在于判断区间重叠后的逻辑本题是将重叠区间进行合并。 先排序如果intervals[i][0] intervals[i - 1][1]就有重叠所以进行合并 合并的逻辑也比较简单 用合并区间后左边界和右边界作为一个新的区间加入到result数组里就可以了。如果没有合并就把原区间加入到result数组。 CPP代码 class Solution { public:vectorvectorint merge(vectorvectorint intervals) {vectorvectorint result;if (intervals.size() 0) return result; // 区间集合为空直接返回// 排序的参数使用了lambda表达式sort(intervals.begin(), intervals.end(), [](const vectorint a, const vectorint b){return a[0] b[0];});// 第一个区间就可以放进结果集里后面如果重叠在result上直接合并result.push_back(intervals[0]); for (int i 1; i intervals.size(); i) {if (result.back()[1] intervals[i][0]) { // 发现重叠区间// 合并区间只更新右边界就好因为result.back()的左边界一定是最小值因为我们按照左边界排序的result.back()[1] max(result.back()[1], intervals[i][1]); } else {result.push_back(intervals[i]); // 区间不重叠 }}return result;} };

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

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

相关文章

网站图片要多少像素谷歌官方网站注册

还原某个文件到指定版本 svn export -r 10520 resanaly.lua --force 设置忽略指定后缀文件, 例如忽略 .lc 后缀的文件, -R 是递归文件夹,path 为指定的起始目录 svn propset svn:ignore -R “*.lc” path svn propget svn:ignore -R 查看忽略设置 设置后…

商务网站建设与维护(专21春)深圳装修公司排名前十

总第 114 篇文章,本文大约 1300 字,阅读大约需要 4 分钟这是 2020 年的第一篇月总结,总结的内容和周记差不多,也还是从这几个方面进行总结:工作学习阅读&写作2月计划工作这个月的工作时间大概是2周多一点&#xff…

Matlab R2024b下载及详细安装教程,附永久免费Matlab安装包

一、MATLAB R2024b 下载 在开始安装前,请确保已下载 MATLAB R2024a 安装包,同时,确认计算机满足软件的最低系统要求,以保证安装和运行的流畅性。 夸克网盘:https://pan.quark.cn/s/3598f84971f4 迅雷网盘:https:…

网站做app开发如何用自己电脑做网站服务器吗

目录 类的定义和使用类的定义格式 类的实例化类和对象的说明 this引用this引用的特性 对象的构造及初始化就地初始化构造方法 封装包导入包中的类自定义包 static成员static修饰成员变量static修饰成员方法 代码块代码块概念及分类构造代码块静态代码块 匿名对象 类的定义和使用…

Luogu P1966

题意简化 给定两个数组 \(a,b\),求让 \(\sum{(a_i-b_i)^2}\) 尽可能小所需要的最小交换次数 分析 首先,拆解题目给出的公式(完全平方) \(\sum{(a_i-b_i)^2}=\sum {{a_i}^2+{b_i}^2-2a_ib_i}\) 可以发现,\(\sum{{a…

计算机毕业设计springboot和Vue的在线购物系统 基于SpringBoot与Vue.js的电子商务平台开发 利用SpringBoot和Vue构建的网络购物应用 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

题解:P14036 [PAIO 2025] Rooks

P14036:最短路、单调队列。如果暴力 BFS,枚举每个点之后暴力枚举同行同列的所有点,时间复杂度不会低于 \(O(nm(n+m))\),明显过不去,因此必须要以行和列为单位整体考虑。 由题意,路径上所有单元格的 \(A\) 值单调…

2025/8/26

T2 模板(monica) 这是一道矩阵求逆的题,求矩阵 \(X\) 使得 \(A\times X=B\)。由于 \(A\times A^{-1}=I\),所以 \(X=A^{-1}\times B\) . 所以只需求 \(A^{-1}\),再与 \(B\) 做矩阵乘法并取模就完成了。 代码如下:…

27 考研初试时间大约是什么时候?

考研初试的时间一般都是在每年 12 月的倒数第二个周末,最近几年的情况一直如此。所以,27 考研的时间可能就是 2026 年 12 月 19 日,相比于 26 考研,从初试时间上来看,27 考研又提前了一天:

《C++ STL:vector类(上)》:详解基础使用核心接口及经典算法题 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

伪静态网站入侵浙江江能建设有限公司网站

Azure DevOps Server (原名TFS)是微软公司的软件开发管理平台,也是著名的软件开发过程管理工具;系统中记录了软件开发过程中的需求、问题、缺陷和迭代计划等各种软件开发工作项数据。 对于工作项数据的批量操作(例如新增和编辑),Excel是一个非…

数据结构 - 跳表 Skip List

跳表(Skip List)是一种用于查找的类似于链表的数据结构,是对有序链表的改进,能够在 \(O(\log{n})\) 时间内完成增加、删除、查找操作。跳表相比于树堆与红黑树,其功能与性能相当,并且跳表的代码长度相较下更短。…

06. 定时器

一、定时器QML 有一个 Timer元素,它允许你在 QML 中设置定时器。这个元素是 Qt Quick 模块的一部分。我们可以通过定时器的 interval 属性设置 定时间隔,通过 running 属性设置 定时器默认是否运行,通过 repeat 属性…

高端集团网站建设公司铭万做的网站怎么样

11.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾…

怎么自己建立网站站长之家seo

前言 Gitee 是一个中国的开源代码托管平台,类似于 GitHub,旨在为开发者提供一个高效、稳定、安全的代码管理和协作开发环境。Gitee 支持 Git 协议,可以托管 Git 仓库,进行版本控制、代码协作、项目管理等操作。 1. Gitee 的主要…

职业学院网站建设网站建设需要哪些资质

这是渲染的数据 这是生成的pdf文件,直接可以打印 需要安装和npm依赖和引入封装的pdf.js文件 npm install --save html2canvas // 页面转图片 npm install jspdf --save // 图片转pdfpdf.js文件 import html2canvas from "html2canvas"; import jsPDF …

没人做网站了吗重庆建设网站哪家专业

ArcGIS软件可以很方便的直接实现度分秒转度、度转度分秒(度分秒→度、度→度分秒)。 文章目录 一、转换预览二、工具介绍三、案例解析一、转换预览 借助ArcGIS快速实现度分秒与度及其他格式的坐标转换,例如:度分秒→度、度→度分秒。 1. 度→度分秒 2. 度分秒→度 转换后…

硬件-电容学习DAY23——电容设计实战指南:从选型到高频应用 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

NOIP之前的复健记录

写一些做题记录,题解和随机话。 这回真是高一零基础学OI/文化课了。CF547B考虑每一个数对答案的贡献。 自然是当这个数 \(a_i\)是所选的区间最小值时对答案有贡献,所以我们找到左边第一个比 \(a_i\) 大的数 \(a_l\) …

支付网站开发建设费用怎么入账网站建设设计服务公司

了解细胞对基因扰动的反应是许多生物医学应用的核心,从识别癌症中涉及的基因相互作用到开发再生医学方法。然而,可能的多基因扰动数量的组合爆炸严重限制了实验验证。在这里,作者提出了图增强的基因激活和抑制模拟器(GEARS&#x…