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

Leetcode刷题笔记-最短无序连续子数组

题目链接:https://leetcode.cn/problems/shortest-unsorted-continuous-subarray/description/

题目描述:

给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。

请你找出符合题意的 最短 子数组,并输出它的长度。

示例 1:

输入:nums = [2,6,4,8,10,9,15]
输出:5
解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。

示例 2:

输入:nums = [1,2,3,4]
输出:0

示例 3:

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

核心思想:

1. 一定是原数组的左右边界往内收缩的子数组

2. 这个子数组的右端点一定比子数组中的最大值要小,左端点一定比子数组的最小值要大

代码:

class Solution:def findUnsortedSubarray(self, nums: List[int]) -> int:# 一定是原数组的左右边界往内收缩的子数组# 这个子数组的右端点一定比子数组中的最大值要小,左端点一定比子数组的最小值要大n = len(nums)if n <= 1:return 0start, end = -1, -2 # 这样设置的原因是使得原数组如果是升序数组时,start和end不会更新,应该返回结果0max_val, min_val = nums[0], nums[-1]# 从左往右找出右边界for i in range(1, n):max_val = max(max_val, nums[i])if nums[i] < max_val:end = i# 从右往左找出左边界for i in range(n-2, -1, -1):min_val = min(min_val, nums[i])if nums[i] > min_val:start = ireturn end- start + 1 

http://www.dtcms.com/a/546221.html

相关文章:

  • 网站后台logo如何注册域名和网站
  • 前端笔试题 | 整理总结 ing | 跨域 + fetch + credentials(携带cookie)
  • 装饰器模式(c++版)
  • 现代感网站湖南网站开发公司电话
  • 手机网站设计机构seo站长工具平台
  • p2p理财网站开发流程wordpress5.0版本恢复到旧版本
  • AFE模拟前端芯片是什么(模拟前端芯片作用)
  • 操作系统(8)虚拟内存-Linux虚拟内存系统
  • 淘宝联盟怎样做新增网站推广好用的网站后台
  • 上海个人网站建设网站建设源码下载
  • 数字孪生深度长文学习
  • 太原网站建设推广番禺人才网官网入口
  • 简单网站建设哪家便宜泰州模板建站
  • CSP-J_S 认证详细 与NOI
  • 旅游网站设计方案怎么做网站建设颐高上海街
  • Nof1.ai 的开源复刻版:让 AI 成为你的量化交易员(附提示词模板)
  • PyTorch实战——从零搭建CV模型
  • 专业的网站制作公司地址设计培训学校
  • 每日算法刷题Day81:10.29:leetcode 回溯5道题,用时2h
  • 地产金融网站开发郑州七彩网站建设公司 概况
  • 南宁市住房城乡建设厅网站温州建设局老网站
  • 商城设计app网站建设柚段子wordpress文章
  • YOLO-World: Real-Time Open-Vocabulary Object Detection论文阅读
  • 深度学习视角下的图像分割
  • Android InputReader与InputDispatcher
  • 周口河南网站建设企业建站系统价格
  • 网站做qq发送链接网页设计与制作哪家公司好
  • 常州云计算网站建设做教育视频网站用什么平台好
  • 软件外包公司有哪些长沙专业竞价优化公司
  • 柯桥区交通投资建设集团网站比较顺口的公司名字