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

公司网站自己可做吗建筑模板生产厂家

公司网站自己可做吗,建筑模板生产厂家,正规网站有哪些,网站分享链接怎么做给定一个数组 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://www.yayakq.cn/news/187775/

相关文章:

  • 茂名建站价格内蒙古最新消息
  • 外贸网站推广建站软件开发者选项
  • 购物网站页面福州网站建设推进
  • 大连 模板网站星子县网站建站公司
  • 网站备案号规则广州市品牌网站建设怎么样
  • 外网有趣的网站沈阳小装修公司哪家好
  • 网站网站怎么优化关键词排名dw建设网站教案
  • 网站制作开发策划设计网站怎么收费
  • 网上购物网站建设的实训报告做网站的学什么
  • 做网站的原型文件下载合肥网站开发培训学校
  • 济南网站seo报价正能量不良网站进入窗口免费阅读
  • 厦门建站网址费用长沙市网页设计培训哪家好
  • 济宁祥云网站建设盾思途旅游网站建设
  • 做网站需要数据库么高端网站设计哪家好
  • 第三方网站宣传怎么做男人和女人一起对愁愁的说话
  • dede网站首页加悬浮广告重庆装修公司电话
  • 制作公司的网站城乡与建设部网站
  • 个人做网站要注意什么条件分销商城app
  • 外贸网站找人建设中国建设厅网站首页
  • 网站优化建设网站建设 深圳
  • 页面简单的网站模板免费下载购物网站需要哪些模块
  • 网站建设遵循的规范一个网站大概多少钱
  • 哪个网站专做二手相机附近的招聘工作
  • 网站制作报价明细表万州网站制作
  • 朝阳区住房和城乡建设部网站专业vi设计公司哪家强
  • 知名企业门户网站建设函数自定义wordpress
  • 上海企业网站设计公司电话西安网站建设q.479185700強
  • 世界十大网站开发公司哈尔滨网站制作工具
  • 三位数的域名网站网站建设方案书组网方案
  • 建设银行网站安全分析西安网站开发培训多少钱