給定乙個
旋轉排序陣列,在原地恢復其排序。
說明什麼是旋轉陣列?
樣例[4, 5, 1, 2, 3]
->[1, 2, 3, 4, 5]
1、我的剛開始的解法(比較複雜)
class solution
//如果i等於陣列長減一,證明沒有旋轉
if (i ==nums.size()-1)
int j;
//實現[4, 5, 1, 2, 3]——>[4, 5, 1, 2, 3, 4, 5]
for(j=0;j<=i;j++)
nums.push_back(nums[j]);
int k=i+1;
j=0;
//實現[4, 5, 1, 2, 3, 4, 5]——>[1,2, 3, 4, 5, 4, 5]
while(k[1,2, 3, 4, 5]
while(i-->-1)
nums.pop_back();
}};
2、利用vector容器中的a.erase(q)函式(q為乙個迭代器,刪除q指向的元素,返回乙個指向q後面的元素的迭代器)
class solution
//如果i等於陣列長減一,證明沒有旋轉
if (i ==nums.size()-1)
int j;
//實現[4, 5, 1, 2, 3]——>[1, 2, 3, 4, 5]
for(j=0;j<=i;j++)
}};
39 恢復旋轉排序陣列
39.恢復旋轉排序陣列 給定乙個旋轉排序陣列,在原地恢復其排序。樣例 4,5,1,2,3 1,2,3,4,5 挑戰使用o 1 的額外空間和o n 時間複雜度 說明什麼是旋轉陣列?比如,原始陣列為 1,2,3,4 則其旋轉陣列可以是 1,2,3,4 2,3,4,1 3,4,1,2 4,1,2,3 方法...
LintCode 39 恢復旋轉排序陣列
給定乙個旋轉排序陣列,在原地恢復其排序。什麼是旋轉陣列?比如,原始陣列為 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 使用o 1 的額外空間和o n 時間複雜度 迴圈將頭部放到後面,知道遇到比下乙個值比當...
LintCode 39(恢復旋轉排序陣列)
lintcode系列,第39題,題目 給定乙個旋轉排序陣列,在原地恢復其排序。說明 什麼是旋轉陣列?樣例 樣例1 4,5,1,2,3 1,2,3,4,5 樣例2 6,8,9,1,2 1,2,6,8,9 找到第乙個大於後繼元素的數,以這個數為界,前半部分做一次逆序,後半部分做一次逆序,最後整個陣列再做...