您的位置:首页 > 编程语言 > Python开发

LeetCode--581. Shortest Unsorted Continuous Subarray(最短的无序数组长度)Python

2018-01-15 17:00 951 查看
题目:

给定一串数组,找出其中的一个连续子串,将该子串按升序排序后,整个数组都是升序。返回该子串的长度。

解题思路:

先将该数组排序,然后统计该数组排序后和原数组内容相同的首尾部分长度,用数组总长度减去该长度即可。

代码(Python):

class Solution(object):
def findUnsortedSubarray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums_c = [i for i in nums]
nums.sort()
min_0 = 0
max_0 = 0
flag = 0
for i in range(len(nums)):
if nums[i]==nums_c[i]:
continue
else:
flag = 1
min_0 = i
break

if flag==0:
return 0

for i in range(len(nums)):
if nums[-i-1]==nums_c[-i-1]:
continue
else:
max_0 = -i
break

return len(nums)+max_0-min_0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: