1.问题描述:
给定一个旋转排序数组,在原地恢复其排序。(升序)
2.样例:
Example1:
[4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5]
Example2:
[6,8,9,1,2] -> [1,2,6,8,9]
3.代码:
class Solution:
"""
@param nums: An integer array
@return: nothing
"""
def recoverRotatedSortedArray(self, nums):
# write your code here
# nums.sort()
for i in range(len(nums)-1):
if nums[i] > nums[i+1]:
for i in range(i+1, len(nums)):
nums.insert(0, nums.pop())
注意:这里可以直接使用Python自带的sort()方式通过测试。另外,对于方法2,这里思路是先去遍历寻找被rotated的点,因为数组是部分有序的,找到rotated点之后,对之后的部分采用和之前第8题相同的思路,可以利用stack pop出元素,原地插入到数组的第一个位置。
本文介绍了一种算法,用于在原地恢复一个旋转排序数组至升序排列。通过实例演示了如何找到旋转点并调整数组顺序,提供了Python实现代码。
3373

被折叠的 条评论
为什么被折叠?



