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

题目链接
难度:简单       类型:数组


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

你找到的子数组应是最短的,请输出它的长度。

示例

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

解题思路


数组复制一份,排序
比较原数组与排序后数组相同位置上第一个和倒数第一个值不一样的位置

代码实现

class Solution:
    def findUnsortedSubarray(self, nums: List[int]) -> int:
        t = sorted(nums)
        n = len(nums)
        left, right, = 0, n-1
        while left<n:
            if t[left] != nums[left]:
                break
            left += 1
        if left == n:
            return 0
        while right>0:
            if t[right] != nums[right]:
                return right - left +1
            right -= 1

本文链接:https://www.jianshu.com/p/1e4a77ca65e2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目 难度:★★☆☆☆类型:数组 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么...
    玖月晴阅读 1,073评论 0 0
  • 题目描述 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序...
    zhipingChen阅读 416评论 0 1
  • 内容 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 ...
    吃饭用盘装阅读 723评论 0 1
  • 前言 2. 实现 Singleton 3. 数组中重复的数字 4. 二维数组中的查找 5. 替换空格 6. 从尾到...
    Observer_____阅读 3,139评论 0 1
  • 文/雪中萍 “吃饭不错,提出表扬!”我对姥姥伸出大拇指,姥姥笑了。 九点多起床,给姥姥换下尿不湿、湿褥子、裤...
    雪中萍阅读 927评论 1 1

友情链接更多精彩内容