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

LeetCode 581. 最短无序连续子数组

更多题解尽在 https://sugar.matrixlab.dev/algorithm 每日更新。
组队打卡,更多解法等你一起来参与哦!

LeetCode 581. 最短无序连续子数组,难度中等

排序

解题思路:首先对数组排序,然后找出两侧顺序的数组,将不顺序的部分使用索引相减。

class Solution {public int findUnsortedSubarray(int[] nums) {int[] sortedNums = Arrays.stream(nums).sorted().toArray();int left, right;for (left = 0; left < nums.length; ++left) {if (sortedNums[left] != nums[left]) {break;}}if (left == nums.length) return 0;for (right = nums.length - 1; right >= 0; --right) {if (sortedNums[right] != nums[right]) {break;}}return right - left + 1;}
}

双指针

解题思路:

  • 先找出左右两边的有序序列;
  • 再找出 leftright 之间的最大最小值;
  • 扩展边界
    • left 向左扩展,直到找到一个不大于 min 的元素为止;
    • right 向右扩展,直到找到一个不小于 max 的元素为止。
class Solution {public int findUnsortedSubarray(int[] nums) {int n = nums.length;int left = 0, right = n - 1;while (left < n - 1 && nums[left] <= nums[left + 1]) {left++;}while (right > 0 && nums[right] >= nums[right - 1]) {right--;}if (left >= right) return 0;int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;for (int i = left; i <= right; ++i) {min = Math.min(min, nums[i]);max = Math.max(max, nums[i]);}while (left >= 0 && nums[left] > min) {left--;}while (right < n && nums[right] < max) {right++;}return right - left - 1;}
}
http://www.lryc.cn/news/393730.html

相关文章:

  • 数据库可视化管理工具dbeaver试用及问题处理。
  • 29、php实现和为S的两个数字(含源码)
  • Spring Boot中的全局异常处理
  • 中英双语介绍美国苹果公司(Apple Inc.)
  • C语言牢大坠机
  • zdppy+vue3+antd 实现表格单元格编辑功能
  • elasticsearch索引怎么设计
  • React 中 useState 和 useReducer 的联系和区别
  • Linux 定时任务详解:全面掌握 cron 和 at 命令
  • 力扣考研经典题 反转链表
  • opencv 设置超时时间
  • 2024年7月6日随笔
  • Ubuntu 打开或关闭界面
  • 使用京东云主机搭建幻兽帕鲁游戏联机服务器全流程,0基础教程
  • Python和MATLAB微机电健康推导算法和系统模拟优化设计
  • IT之家最新科技热点 | 小米 AI 研究院开创多模态通用模型
  • 黑色矩形块检测数据集VOC+YOLO格式2000张1类别
  • Linux内存管理--系列文章柒——硬件架构
  • QQ音乐Android一面凉经
  • 浅谈进程隐藏技术
  • 【C++】Google Test(gtest)单元测试
  • 水箱高低水位浮球液位开关
  • Autoware内容学习与初步探索(一)
  • 【手写数据库内核组件】01 解析树的结构,不同类型的数据结构组多层的链表树,抽象类型统一引用格式
  • Pandas 进阶 —— 数据转换、聚合与可视化
  • 华为OD机试 - 来自异国的客人(Java 2024 D卷 100分)
  • 期末上分站——计组(3)
  • IDA*——AcWing 180. 排书
  • 【云计算】公有云、私有云、混合云、社区云、多云
  • MySQL中的MVCC解析