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

网站后台 网页编辑器wordpress ftp验证

网站后台 网页编辑器,wordpress ftp验证,网站关键词扩展,wordpress淘点金插件给定一个数组 nums,找出最短的连续子数组,使得只要对这个子数组进行升序排序,整个数组就变为升序有序。 示例: 输入:nums [2, 6, 4, 8, 10, 9, 15] 输出:5(排序 [6, 4, 8, 10, 9] 后整个数组…

给定一个数组 nums,找出最短的连续子数组,使得只要对这个子数组进行升序排序,整个数组就变为升序有序。

示例:

  • 输入:nums = [2, 6, 4, 8, 10, 9, 15]

  • 输出:5(排序 [6, 4, 8, 10, 9] 后整个数组有序)


解法分析(最优解:O(n) 时间,O(1) 空间)

关键思路

  1. 从左到右找右边界:遍历数组,记录当前最大值 max,如果 nums[i] < max,说明 i 应该在待排序子数组内,更新右边界 right = i

  2. 从右到左找左边界:反向遍历数组,记录当前最小值 min,如果 nums[i] > min,说明 i 应该在待排序子数组内,更新左边界 left = i

  3. 计算子数组长度right - left + 1(如果 right > left,否则数组已经有序,返回 0)。

代码实现(Python)

python

复制

下载

def findUnsortedSubarray(nums):n = len(nums)if n <= 1:return 0# 初始化左右边界left, right = n, -1# 从左到右找右边界max_so_far = nums[0]for i in range(1, n):if nums[i] < max_so_far:right = ielse:max_so_far = nums[i]# 从右到左找左边界min_so_far = nums[-1]for i in range(n-2, -1, -1):if nums[i] > min_so_far:left = ielse:min_so_far = nums[i]return right - left + 1 if right > left else 0

复杂度分析

  • 时间复杂度:O(n)(两次遍历数组)

  • 空间复杂度:O(1)(仅用几个变量)


为什么这个方法有效?

  1. 右边界 right

    • 遍历时,如果 nums[i] 比当前最大值 max_so_far 小,说明 nums[i] 应该被排序,更新 right = i

    • 例如 [2, 6, 4, 8, 10, 9, 15]max_so_far 依次是 2, 6, 6, 8, 10, 10nums[5]=9 < 10,所以 right=5

  2. 左边界 left

    • 反向遍历时,如果 nums[i] 比当前最小值 min_so_far 大,说明 nums[i] 应该被排序,更新 left = i

    • 例如 min_so_far 依次是 15, 9, 9, 8, 4, 4nums[1]=6 > 4,所以 left=1

  3. 最终结果right - left + 1 = 5 - 1 + 1 = 5(即排序 [6, 4, 8, 10, 9] 后整个数组有序)。


测试用例验证

输入输出解释
[2, 6, 4, 8, 10, 9, 15]5排序 [6,4,8,10,9] 后整个数组有序
[1, 2, 3, 4]0已经有序
[1]0单元素数组
[5, 4, 3, 2, 1]5整个数组需要排序

总结

  • 最优解:两次遍历,分别确定左右边界,时间复杂度 O(n),空间 O(1)

  • 适用场景:需要高效找到最短无序子数组的情况(如数据流分析、异常检测)。

  • 变种问题:如果要求返回子数组本身(而非长度),只需记录 left 和 right 并切片即可。


文章转载自:

http://FeQnp33S.nktxr.cn
http://ExbtUVL2.nktxr.cn
http://8hVXwxho.nktxr.cn
http://auvorAOt.nktxr.cn
http://lyjUvPIR.nktxr.cn
http://WaJsiQt7.nktxr.cn
http://S83gf5yK.nktxr.cn
http://0CqbKGTV.nktxr.cn
http://Ai4gwBPb.nktxr.cn
http://Xch7wUPL.nktxr.cn
http://Ll3dHrzy.nktxr.cn
http://pswrNVAp.nktxr.cn
http://8O3R5dKp.nktxr.cn
http://FLOM1So0.nktxr.cn
http://s3NvVLUM.nktxr.cn
http://haIYHUEp.nktxr.cn
http://drzl0ZF4.nktxr.cn
http://C61Zc0UX.nktxr.cn
http://QBBeniXI.nktxr.cn
http://XhoV3bkn.nktxr.cn
http://H0eNIKed.nktxr.cn
http://Gv587i4z.nktxr.cn
http://zU910NSM.nktxr.cn
http://wTLc0aPi.nktxr.cn
http://ydY7Pyn3.nktxr.cn
http://C9Ya2ctZ.nktxr.cn
http://bTV47X27.nktxr.cn
http://MsrD4SlW.nktxr.cn
http://jNVcZhGo.nktxr.cn
http://ms9s0GxJ.nktxr.cn
http://www.dtcms.com/wzjs/674087.html

相关文章:

  • 做地方门户网站的资质免流网站开发
  • 南京网站开发荐南京乐识免费追剧的app下载
  • 怎么样做团购网站免费网络电话免费版试用
  • 天津企业网站设计哪家好泰安网站制作公司电话
  • 深圳市企业网站seo网站正能量
  • 外贸网站示例2018年网站建设的数据
  • 国内做网站费用商城网站程序
  • 网站域名价值查询工具wordpress设置目录
  • 杭州建设网站公司网站为什么百度搜索不到我的网站
  • 沧州网站制作网站网站推广员是什么
  • 一 网站建设的总体目标甜品网站建设方案
  • 怎么进行网站维护广州市建设厅网站首页
  • 为什么有些网站更新的信息看不到做鞋子出口需要作网站吗
  • 山西自助建站费用低最好看免费观看高清大全英雄联盟
  • 企业网站怎么做才能留住客户自己建网站流程要学什么
  • 做网站收费 知乎做直播导航网站好
  • 家庭农场做网站的好处企业网站收录
  • 网页设计与网站建设的理解宿迁房价最新价格表
  • 沈阳网站建设建设公司昆山做网站公司有哪些
  • 建设银行网站会员2022电商平台哪个值得做
  • 重庆点优定制网站建设网站建设kpi考核
  • 一个云主机可以做多少网站陕西省建设工程招投标信息网官网
  • 网站建设费入如保入账东莞莞城建筑工程有限公司
  • 网站建设数据录入我要找工作 招聘附近
  • 建站之星视频手机网站建站教育模板
  • 德州金航网络公司网站建设网站建设进度表模板下载
  • 玉林市住房和城乡建设局网站云建站网址
  • 郑州营销型网站公司电话响应式网站开发支持ie6解决
  • 建设网站哪个便宜wordpress 地图
  • 哪个网站可以找人做清洁如何提高网站的收录