给定一个旋转排序数组,在原地恢复其排序。
说明
什么是旋转数组?
- 比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]
样例
[4, 5, 1, 2, 3]
-> [1, 2, 3, 4, 5]
python:
class Solution:
"""
@param: nums: An integer array
@return: nothing
"""
def recoverRotatedSortedArray(self, nums):
# write your code here
for i in range(len(nums)):
if nums[0] >= nums[-1]:
nums.append(nums[0])
nums.remove(nums[0])
else:
return nums
C++:
class Solution {
public:
/*
* @param nums: An integer array
* @return: nothing
*/
void recoverRotatedSortedArray(vector<int> &nums) {
// write your code here
int n = nums.size();
for (int i = 0; i < n; i++)
{
int temp = nums[0];
if (temp < nums[n-1])
{
break;
}
nums.erase(nums.begin());
nums.push_back(temp);
}
}
};