当前位置: 首页 > news >正文

【算法题】1574. 删除最短的子数组使剩余数组有序

题目:

给你一个整数数组 arr ,请你删除一个子数组(可以为空),使得 arr 中剩下的元素是 非递减 的。

一个子数组指的是原数组中连续的一个子序列。

请你返回满足题目要求的最短子数组的长度。

示例 1:

输入:arr = [1,2,3,10,4,2,3,5]
输出:3
解释:我们需要删除的最短子数组是 [10,4,2] ,长度为 3 。剩余元素形成非递减数组 [1,2,3,3,5] 。
另一个正确的解为删除子数组 [3,10,4] 。
示例 2:

输入:arr = [5,4,3,2,1]
输出:4
解释:由于数组是严格递减的,我们只能保留一个元素。所以我们需要删除长度为 4 的子数组,要么删除 [5,4,3,2],要么删除 [4,3,2,1]。
示例 3:

输入:arr = [1,2,3]
输出:0
解释:数组已经是非递减的了,我们不需要删除任何元素。
示例 4:

输入:arr = [1]
输出:0

提示:

1 <= arr.length <= 10^5
0 <= arr[i] <= 10^9

java代码:

class Solution { // 模板二public int findLengthOfShortestSubarray(int[] arr) {int n = arr.length;int i = 1, j = n-1;while (i<n && arr[i-1]<=arr[i]) ++i;if (i == n) return 0; // arr已经有序while (j-1>=0 && arr[j-1]<=arr[j]) --j;int l = j, r = n-1; int ans = j; // 最坏结果只保留rightfor (int k = 0; k < i; ++k) {int target = arr[k];l = j; r = n; //搜索right区间[j,n-1]while (l<r) {int mid = (l+r)>>1;if (arr[mid] < target) {l = mid+1;} else {r = mid;}}ans = Math.min(ans, r-k-1);}return ans;}
}

相关文章:

【算法题】1574. 删除最短的子数组使剩余数组有序

题目&#xff1a; 给你一个整数数组 arr &#xff0c;请你删除一个子数组&#xff08;可以为空&#xff09;&#xff0c;使得 arr 中剩下的元素是 非递减 的。 一个子数组指的是原数组中连续的一个子序列。 请你返回满足题目要求的最短子数组的长度。 示例 1&#xff1a; …...

理解对数——金融问题中的自然对数(以e为底的对数)

第3章 金融问题(Financial Matters)——金融问题中的自然对数If thou lend moneyto any ofMy people. ...thou shalt not beto him as a creditor;neither shall yelay upon him interest.(如果你借钱给我的任何人。 ……你不应该是他的债权人&#xff1b;也不可向他加息。)——…...

vue2进阶学习之路

HTML、CSS和JavaScript基础 在学习Vue2之前&#xff0c;需要掌握HTML、CSS和JavaScript的基础知识。包括HTML的标签、CSS的布局和样式、JavaScript的变量类型、条件语句、循环语句等。 Vue2的基础知识 掌握Vue2的基本概念和语法&#xff0c;包括Vue2实例、数据绑定、指令、组件…...

决策树ID3算法

1. 决策树ID3算法的信息论基础 机器学习算法其实很古老&#xff0c;作为一个码农经常会不停的敲if, else if, else,其实就已经在用到决策树的思想了。只是你有没有想过&#xff0c;有这么多条件&#xff0c;用哪个条件特征先做if&#xff0c;哪个条件特征后做if比较优呢&#…...

C++模板基础(一)

函数模板&#xff08;一&#xff09; ● 使用 template 关键字引入模板&#xff1a; template void fun(T) {…} – 函数模板的声明与定义 – typename 关键字可以替换为 class &#xff0c;含义相同 – 函数模板中包含了两对参数&#xff1a;函数形参 / 实参&#xff1b;模板形…...

生产者消费者模型线程池(纯代码)

目录 生产者消费者模型 条件变量&&互斥锁&#xff08;阻塞队列&#xff09; makefile Task.hpp BlockQueue.hpp BlockQueueTest.cc 信号量&&互斥锁&#xff08;环形队列&#xff09; makefile RingQueue.hpp RingQueueTest.cc 线程池&#xff08;封…...

K8s 应用的网络可观测性: Cilium VS DeepFlow

随着分布式服务架构的流行,特别是微服务等设计理念在现代应用普及开来,应用中的服务变得越来越分散,因此服务之间的通信变得越来越依赖网络,很有必要来谈谈实现微服务可观测性中越来越重要的一环——云原生网络的可观测。K8s 是微服务设计理念能落地的最重要的承载体,本文…...

3.29面试题

文章目录内存内存管理执行过程要点面试题内存 内存管理 由JVM管理 堆&#xff1a;new出来的对象&#xff08;包括成员变量、数组元素、方法的地址&#xff09;栈&#xff1a;局部变量&#xff08;包括方法的参数&#xff09;方法区&#xff1a;.class字节码文件&#xff08;…...

操作系统漏洞发现

操作系统漏洞发现前言一、操作系统漏洞发现1.1 namp2. Goby3. Nessus二&#xff0c;进行渗透测试2.1 使用工具进行渗透1. metasploit2.2 EXP2.3 复现文章三&#xff0c;操作系统漏洞修复前言 不管是对于App来说&#xff0c;还是web站点来说&#xff0c;操作系统是必须的&#x…...

Linux gdb调试底层原理

TOC 前言 linux下gdb调试程序操作过程参考本人文章:gdb调试操作; 这里不再叙述; 本文主要内容是介绍GDB本地调试的底层调试原理&#xff0c;我们来看一下GDB是通过什么机制来控制被调试程序的执行顺序; 总结部分是断点调试的底层原理&#xff0c;可以直接跳转过去先看看大概…...

LC-1647. 字符频次唯一的最小删除次数(哈希+计数)

1647. 字符频次唯一的最小删除次数 难度中等56 如果字符串 s 中 不存在 两个不同字符 频次 相同的情况&#xff0c;就称 s 是 优质字符串 。 给你一个字符串 s&#xff0c;返回使 s 成为 优质字符串 需要删除的 最小 字符数。 字符串中字符的 频次 是该字符在字符串中的出现…...

HTTP状态码

100: 接受&#xff0c;正在继续处理 200: 请求成功&#xff0c;并返回数据 201: 请求已创建 202: 请求已接受 203: 请求成为&#xff0c;但未授权 204: 请求成功&#xff0c;没有内容 205: 请求成功&#xff0c;重置内容 206: 请求成功&#xff0c;返回部分内容 301: 永久性重定…...

【Linux】初见“which命令”,“find命令”以及linux执行命令优先级

文章目录1.which命令1.1 whereis命令1.2 locate命令1.3 搜索文件命令总结2.find命令2.1 find之exec用法2.2 管道符之xargs用法3 Linux常用命令4.命令执行优先级1.which命令 查找命令文件存放目录 搜索范围由环境变量PATH决定&#xff08;echo $PATH) which命令格式&#xff1…...

update case when 多字段,多条件, mysql中case when用法

文章目录 前言 sql示例 普通写法&#xff1a; update case when写法 update case when 多字段写法 case when语法 case when 的坑 1、不符合case when条件但是字段被更新为null了 解决方法一&#xff1a;添加where条件 解决方法二&#xff1a;添加else 原样输出 2、同一条数据符…...

mysql隐式转换 “undefined“字符串匹配到mysql int类型0值字段

描述&#xff1a;mysql 用字符串搜索 能搜到int类型查询结果 mysql int类型条件用字符串查询 table: CREATE TABLE all_participate_records (id bigint unsigned NOT NULL AUTO_INCREMENT,created_at datetime(3) DEFAULT NULL,updated_at datetime(3) DEFAULT NULL,deleted…...

Redis八股文

1.Redis是什么? Redis 是一个基于 C 语言开发的开源数据库&#xff08;BSD 许可&#xff09;&#xff0c;与传统数据库不同的是 Redis 的数据是存在内存中的&#xff08;内存数据库&#xff09;&#xff0c;读写速度非常快&#xff0c;被广泛应用于缓存方向。并且&#xff0c…...

InnoDB——详细解释锁的应用,一致性读,自增长与外键

一致性非锁定读 一致性的非锁定读&#xff08;consistent nonlocking read&#xff09;是指InnoDB存储引擎通过行多版本控制的方式读取当前执行时数据库中行的数据。 如果读取的行正在执行 行Delete或Update操作&#xff0c;这时读取操作不会因此去等待行上锁的释放。相反&…...

C++模板基础(四)

函数模板&#xff08;四&#xff09; ● 函数模板的实例化控制 – 显式实例化定义&#xff1a; template void fun(int) / template void fun(int) //header.h template<typename T> void fun(T x) {std::cout << x << std::endl; }//main.cpp #include&quo…...

pycharm使用记录

文章目录下载安装后续其他设置编辑器设置关于debug下载安装 直接去pycharm官网下载社区版&#xff0c;这个版本本来就是免费的&#xff0c;而且功能其实已经够了 后续其他设置 首先&#xff0c;第一次启动时&#xff0c;记得在preference->interpreter中设置python环境&a…...

Linux命令·kill·killall

Linux中的kill命令用来终止指定的进程&#xff08;terminate a process&#xff09;的运行&#xff0c;是Linux下进程管理的常用命令。通常&#xff0c;终止一个前台进程可以使用CtrlC键&#xff0c;但是&#xff0c;对于一个后台进程就须用kill命令来终止&#xff0c;我们就需…...

幸福依赖于抽象的 能力的庖丁解牛

它的本质是&#xff1a;**将幸福的源头从 具体实现类 (Concrete Implementations)&#xff08;如特定的伴侣、具体的工作、固定的房产&#xff09;转移到 抽象接口 (Abstract Interfaces)&#xff08;如爱的能力、创造价值的技能、感知美好的心智&#xff09;。具体实现是不可控…...

从昆虫飞行到机器人导航:碰撞容忍型Gimbal机器人的仿生设计哲学

1. 项目概述&#xff1a;从“硬闯”到“巧过”的机器人导航哲学 在机器人导航领域&#xff0c;我们似乎已经习惯了“感知-规划-行动”的经典范式。从激光雷达、深度相机到复杂的SLAM算法&#xff0c;工程师们投入海量资源&#xff0c;只为让机器人像人一样&#xff0c;优雅地识…...

别再死记硬背了!用STM32H7的USB CDC类实战,反向理解USB协议栈核心概念

从实战出发&#xff1a;用STM32H7的USB CDC类逆向掌握协议栈精髓 当开发板上的LED第一次随着串口指令闪烁时&#xff0c;我意识到USB协议栈不再是手册里晦涩的名词——端点成了数据管道&#xff0c;描述符变身设备身份证&#xff0c;而曾经令人头疼的HID报告突然有了具象意义。…...

从虚拟到物理:电子系统原型设计的工程化策略与实战解析

1. 原型设计全景&#xff1a;从概念到实物的工程化思维 在电子系统设计领域&#xff0c;尤其是面对航空航天、汽车电子、通信设备这类高复杂、高可靠性要求的项目时&#xff0c;“原型”这个词的分量远超一个简单的模型。它不是一个可有可无的步骤&#xff0c;而是连接创意与产…...

QSplitter实战:打造可动态调整的专业级应用界面

1. QSplitter&#xff1a;让界面布局活起来的魔法棒 第一次用QSplitter的时候&#xff0c;我正被一个IDE项目的界面布局折磨得焦头烂额。左侧导航栏、中间代码区、右侧属性面板&#xff0c;这三个区域就像三个固执的老头&#xff0c;死活不肯按照用户期望的比例显示。直到发现Q…...

Kali Linux更新卡住?别急,先检查DNS!手把手教你用阿里云/谷歌DNS解决网络问题

Kali Linux更新卡住&#xff1f;三步精准诊断DNS问题与高效解决方案 当你满心期待地在Kali Linux中执行apt update&#xff0c;却发现进度条像被冻住一般纹丝不动&#xff0c;这种体验就像在沙漠中寻找绿洲却始终看不到水源。作为安全测试人员的瑞士军刀&#xff0c;Kali Linux…...

STM32F103C8T6驱动MAX30102:从CubeMX配置到心率可视化,一个LED灯带你看懂心跳

STM32F103C8T6驱动MAX30102&#xff1a;从硬件交互到心跳可视化实战 当你第一次看到LED灯随着自己的心跳节奏闪烁时&#xff0c;那种将生物信号转化为物理反馈的奇妙体验&#xff0c;正是嵌入式开发的魅力所在。本文将带你用STM32F103C8T6和MAX30102血氧传感器&#xff0c;打造…...

qmcdump音频解密终极指南:3分钟解锁QQ音乐加密文件

qmcdump音频解密终极指南&#xff1a;3分钟解锁QQ音乐加密文件 【免费下载链接】qmcdump 一个简单的QQ音乐解码&#xff08;qmcflac/qmc0/qmc3 转 flac/mp3&#xff09;&#xff0c;仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 还在为QQ…...

为什么选择这个Windows键盘记录工具?3个让你无法拒绝的理由

为什么选择这个Windows键盘记录工具&#xff1f;3个让你无法拒绝的理由 【免费下载链接】keylogger Keylogger for Windows. 项目地址: https://gitcode.com/gh_mirrors/keylogg/keylogger 你是否曾经需要监控自己的电脑使用情况&#xff0c;或者为技术研究寻找一个轻量…...

SRWE:Windows窗口实时编辑器的专业应用指南

SRWE&#xff1a;Windows窗口实时编辑器的专业应用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 在数字内容创作和游戏开发领域&#xff0c;分辨率限制常常成为技术瓶颈。传统Windows窗口管理系统缺乏灵活…...