Lintcode 恢復旋轉陣列
題目
給定一個旋轉排序陣列,在原地恢復其排序。
樣例
什麼是旋轉陣列?
比如,原始陣列為[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]
class Solution {
public:
void Reverse(vector<int> &nums,int l,int h)
{
int temp=0;
while(l<h)
{
temp=nums[l];
nums[l]=nums[h];
nums[h]=temp;
l++;
h--;
}
}
void recoverRotatedSortedArray(vector<int> &nums) {
// write your code here
if(nums.empty()||nums.size()==1) return;
int i=0;
//找到分界點
while(i<nums.size()-1)
{
if(nums[i]<=nums[i+1])
i++;
else
break;
}
//反轉
if(i<nums.size()-1)
{
Reverse(nums,0,i);
Reverse(nums,i+1,nums.size()-1);
Reverse(nums,0,nums.size()-1);
}
}
};
STL擴充
C++的STL提供了reverse,可以用於反轉陣列。
reverse(引數1,引數2);
引數1:要反轉陣列第一個元素的迭代器;
引數2:要反轉陣列的最後一個元素的下一個位置。
上題程式碼可改寫成
class Solution {
public:
void recoverRotatedSortedArray(vector<int> &nums) {
// write your code here
if(nums.empty()||nums.size()==1) return;
int i=0;
//找到分界點
while(i<nums.size()-1)
{
if(nums[i]<=nums[i+1])
i++;
else
break;
}
//反轉
if(i<nums.size()-1)
{
//STL::reverse
reverse(nums.begin(),nums.begin()+i+1);
reverse(nums.begin()+i+1,nums.end());
reverse(nums.begin(),nums.end());
}
}
};
相關文章
- LeetCode 189 旋轉陣列LeetCode陣列
- 【LeetCode】189. 旋轉陣列LeetCode陣列
- LeetCode-189-旋轉陣列LeetCode陣列
- LC 189. 旋轉陣列陣列
- 旋轉陣列中的最小元素陣列
- LeetCode 33——搜尋旋轉排序陣列LeetCode排序陣列
- NAS陣列恢復資料資料恢復開盤陣列資料恢復
- LeetCode 81——搜尋旋轉排序陣列 IILeetCode排序陣列
- LeetCode33. 搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode#33搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode33 搜尋旋轉排序陣列LeetCode排序陣列
- 【LeetCode(Java) - 33】搜尋旋轉排序陣列LeetCodeJava排序陣列
- LeetCode每日一題: 旋轉陣列(No.189)LeetCode每日一題陣列
- leetCode33搜尋旋轉排序陣列LeetCode排序陣列
- [轉]旋轉矩陣:點旋轉和座標系旋轉矩陣
- 伺服器資料恢復成功案例(磁碟陣列恢復)伺服器資料恢復陣列
- 劍指offer:旋轉陣列的最小數字陣列
- 每日一道演算法:旋轉陣列演算法陣列
- 劍指offer 旋轉陣列的最小數字陣列
- 力扣·33. 搜尋旋轉排序陣列力扣排序陣列
- 圖解:什麼是旋轉陣列(Rotate Array)?圖解陣列
- leetcode, LC68:旋轉排序陣列搜尋LeetCode排序陣列
- 力扣-81. 搜尋旋轉排序陣列 II力扣排序陣列
- 伺服器磁碟陣列資料恢復,raid資料恢復方法伺服器陣列資料恢復AI
- OMV資料恢復NAS陣列丟失資料恢復陣列
- 伺服器RAID資料恢復,磁碟陣列資料恢復過程伺服器AI資料恢復陣列
- 【raid資料恢復】光纖儲存raid陣列資料恢復案例AI資料恢復陣列
- 【劍指offer】7.旋轉陣列的最小數字陣列
- 【劍指 Offer】11. 旋轉陣列的最小數字陣列
- 劍指 Offer 11. 旋轉陣列的最小數字陣列
- 153. 尋找旋轉排序陣列中的最小值排序陣列
- 我請大家來刷題:旋轉陣列的最小數字陣列
- 伺服器資料恢復-2盤raid0陣列資料恢復案例伺服器資料恢復AI陣列
- iOS 字典轉陣列,陣列轉字典iOS陣列
- 伺服器磁碟陣列資料恢復成功案例伺服器陣列資料恢復
- 華為伺服器raid陣列資料恢復伺服器AI陣列資料恢復
- 三維座標系旋轉——旋轉矩陣到旋轉角之間的換算矩陣
- Raid5磁碟陣列資料恢復成功案例/伺服器資料恢復方案AI陣列資料恢復伺服器
- 伺服器資料恢復—xfs下Raid5磁碟陣列資料恢復案例伺服器資料恢復AI陣列