美文网首页leetcode和算法----日更
leetcode 581 最短无序连续子数组

leetcode 581 最短无序连续子数组

作者: Arsenal4ever | 来源:发表于2020-02-17 22:02 被阅读0次

双指针,将该数组于排序后的数组比较,找到两个位置开始不同的位置,然后做差即可求出长度。

class Solution(object):
    def findUnsortedSubarray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        sortNums = sorted(nums)
        if sortNums == nums:
            return 0
        for i in range(len(nums)):
            if nums[i] != sortNums[i]:
                break
        for j in range(len(nums)-1, -1, -1):
            if nums[j] != sortNums[j]:
                break
        return j - i + 1

感觉用 while 比用 for 好一些!!!

class Solution(object):
    def findUnsortedSubarray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        sortedNums = sorted(nums)
        i, j = 0, len(nums) - 1
        while i <= j and nums[i] == sortedNums[i]:
            i += 1
        while i <= j and nums[j] == sortedNums[j]:
            j -= 1
        return j - i + 1

相关文章

  • TOP 96 - 100

    581. 最短无序连续子数组[https://leetcode-cn.com/problems/shortest-...

  • leetcode 581 最短无序连续子数组

    双指针,将该数组于排序后的数组比较,找到两个位置开始不同的位置,然后做差即可求出长度。 感觉用 while 比用 ...

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

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

  • Leetcode 581. 最短无序连续子数组

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

  • LeetCode 第581题:最短无序连续子数组

    1、前言 2、思路 这道题最简单的思路是,首先将原数组复制出来,然后对复制的数组 arrays 进行排序,最后遍历...

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

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

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

    581. 最短无序连续子数组 难度简单375收藏分享切换为英文关注反馈 给定一个整数数组,你需要寻找一个连续的子数...

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

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

  • 581-最短无序连续子数组

    方法比较笨,将数组元素复制一份,重新排序,找到两个数组元素不同的位置索引,计算两个索引之间的距离即可。 大佬实现:...

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

    解法

网友评论

    本文标题:leetcode 581 最短无序连续子数组

    本文链接:https://www.haomeiwen.com/subject/ynnifhtx.html