39 恢復旋轉排序陣列

2021-08-14 20:44:29 字數 840 閱讀 1937

給定乙個

旋轉排序陣列,在原地恢復其排序。

說明什麼是旋轉陣列?

樣例[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 找到第乙個大於後繼元素的數,以這個數為界,前半部分做一次逆序,後半部分做一次逆序,最後整個陣列再做...