【LeetCode】HOT 100(20)

题单介绍:

精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。

目录

题单介绍:

题目:621. 任务调度器 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

题目:581. 最短无序连续子数组 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

写在最后:


题目:621. 任务调度器 - 力扣(Leetcode)

题目的接口:

class Solution {
public:int leastInterval(vector<char>& tasks, int n) { }
};

解题思路:

这道题的思路是这样的:

通过一个26大的数组存储任务数量(因为任务只有A~Z)

通过排序找到最大的任务数量

求出至少有多长:A->X->X->A->X->X->A

求最后一个任务还带着几个任务:A->X->X->A->X->X->A->?

如果任务的数量超过了间隔的数量,就直接返回任务数量:例:

比如说,有两个间隔,但是一个又四种任务,那任务又得全部做完,

那直接返回任务的数量就行了。

代码如下:

代码:

class Solution {
public:int leastInterval(vector<char>& tasks, int n) { //如果间隔是0,或者只有一个(零个)任务,就直接返回if(tasks.size() <= 1 || n < 1) return tasks.size();//通过一个26大的数组存储任务数量(因为任务只有A~Z)vector<int> v(26, 0);for(int i = 0; i < tasks.size(); i++) {v[tasks[i] - 'A']++;}//通过排序找到最大的任务数量sort(v.begin(), v.end());int maxCnt = v[25];//求出至少有多长:A->X->X->A->X->X->Aint maxVal = (maxCnt - 1) * (n + 1) + 1; //求最后一个任务还带着几个任务:A->X->X->A->X->X->A->?int i = 24;while(i >= 0 && v[i] == maxCnt) {i--;maxVal++;}//如果任务的数量超过了间隔的数量,就直接返回任务数量return max(maxVal, (int)tasks.size());}
};

过过过过啦!!!!

题目:581. 最短无序连续子数组 - 力扣(Leetcode)

题目的接口:

class Solution {
public:int findUnsortedSubarray(vector<int>& nums) {}
};

解题思路:

这道题我使用的就是O(N)的算法,

其实就是用双指针,

一个找右边界,一个找左边界,

具体思路是这样的:

1. 用来找右边界的指针从左往右走,记录遇到的最大值,

一直往右走遇到的最后一个最大值的前一个位置就是右边界;

2. 用来找左边界的指针从右往左走,记录遇到的最小值,

一直往左走遇到的最后一个最小值的前一个位置就是左边界。

代码如下:

代码:

class Solution {
public:int findUnsortedSubarray(vector<int>& nums) {int n = nums.size();int rMax = INT_MIN, right = -1;int lMax = INT_MAX, left = -1;for(int i = 0; i < n; i++) {if(rMax > nums[i]) {right = i;}else {rMax = nums[i];}if(lMax < nums[n - i - 1]) {left = n - i - 1;}else {lMax = nums[n - i - 1];}}return right == -1 ? 0 : right - left + 1;}
};

过过过过啦!!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

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

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

相关文章

银河麒麟服务器 v10 sp1 安装 .Net6.0

系统版本、架构&#xff1a; 如果系统自带.netcore3&#xff0c;先卸载系统自带的.netcore3&#xff1a; 卸载.netcore3&#xff1a; 我的系统没有自带.netcore3&#xff0c;也没有yum命令。 下载二进制文件安装SDK&#xff1a; 下载 .NET 6.0 (Linux、macOS 和 Windows) 下载…

deeplabv3+源码之慢慢解析main.py(1)--get_argparser函数

deeplab v3源码 慢慢解析系列 本带着一些孩子们做&#xff0c;但本硕能独立看下来的学生不多。和孩子们一起再学一遍吧。希望孩子们和我自己都能坚持写下去吧。网上资料太多了&#xff0c;但不够慢&#xff0c;都是速成&#xff0c;没有足够的解释和补充&#xff0c;希望这次够…

DDR4技术原理详解

DDR4是DDR4-SDRAM的简写&#xff0c;即第4代DDR-SDRAM&#xff0c;DDR-SDRAM全称Double Date Rate Synchronous Dynamic Random Access Memory。本文重点解析DDR4技术规范及其背后的电子电路原理&#xff0c;以及编程使用DDR4过程中需要注意的性能事项。 DDR4数据存储原理 DD…

仙剑风景图片生成【InsCode Stable Diffusion美图活动一期】

一、 Stable Diffusion 模型在线使用地址&#xff1a;https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型版本及相关配置&#xff1a; Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 423016627, Size: 512x512, Model hash: 74c61c3a52, Model: GuoFeng3,…

keil_arm满减栈应用场景

.text .global _start _start:满减压栈使用场景ldr sp,0x40000800mov r0,#0x1mov r1,#0x2bl add1_funcadd r0,r0,r1 r0 r0 r1 0x3b stopadd1_func: 压栈保存现场 r0 0x1 r1 0x2stmfd sp!,{r0,r1&#xff0c;lr}mov r0,#0x3mov r1,#0x4bl add2_funcadd r0,r0,r1 r0 r…

【实战】 六、用户体验优化 - 加载中和错误状态处理(上) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(八)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理1.给页面添加 …

Observability:Synthetic monitoring - 合成监测入门

从我们的全球测试基础设施监控关键用户旅程&#xff0c;并了解网络和前端性能对用户体验的影响。 全面了解你的网站性能、功能和可用性&#xff08;从开发到生产&#xff09;&#xff0c;并在客户之前发现问题。合成监测&#xff08;synthetic monitoring&#xff09;使你能够模…

SAP 销售订单状态修改

FM: I_CHANGE_STATUS 代码样例&#xff1a; FUNCTION zjkdms003. *"---------------------------------------------------------------------- *"*"本地接口&#xff1a; *" IMPORTING *" VALUE(I_VBELN) TYPE VBELN_VA OPTIONAL *" EX…

解决Python的SyntaxError: Non-UTF-8 code starting with ‘\xbb‘问题

文章目录 一、报错二、分析三、解决3.1 方法一3.2 方法二3.3 方法三 一、报错 在程序中&#xff0c;line 8为含有中文的注释&#xff0c;编译后出现了SyntaxError: Non-UTF-8 code starting with \xbb的报错&#xff0c;具体如下图。 二、分析 这个错误是由于Python解释器无…

nacos身份认证绕过漏洞

1.影响范围 Nacos < 2.0.0-ALPHA.1 2.验证漏洞是否存在 http://example/nacos/v1/auth/users/?pageNo1&pageSize5 如果列出了用户名密码,即证明此漏洞存在 3.向系统中添加一个新的用户 http://example/nacos/v1/auth/users/?usernamesectest&passwordsectest…

阿里前端常考vue面试题汇总

大厂面试题分享 面试题库 前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 web前端面试题库 VS java后端面试题库大全 Vuex中actions和mutations有什么区别 题目分析 mutations和actions是vuex带来的两个独特…

Spring Boot 中的分布式配置中心:什么是它,原理及如何使用

Spring Boot 中的分布式配置中心&#xff1a;什么是它&#xff0c;原理及如何使用 在分布式应用程序中&#xff0c;配置管理是一项重要的任务。通常情况下&#xff0c;配置信息被硬编码在应用程序中&#xff0c;这样一来&#xff0c;当应用程序需要相应的配置信息时&#xff0…