题目
思路
三次翻转。
代码
class Solution:
"""
@param: nums: An integer array
@return: nothing
"""
def reverse(self, nums, s, e):
i = s; j = e
while i < j:
nums[i], nums[j] = nums[j], nums[i]
i += 1
j -= 1
def recoverRotatedSortedArray(self, nums):
# write your code here
offset = 0
length = len(nums)
for i in range(length):
if i > 0 and nums[i] < nums[i - 1]:
offset = i
break
if offset:
self.reverse(nums, 0, length - 1)
self.reverse(nums, 0, length - offset - 1)
self.reverse(nums, length - offset, length - 1)