LintCode 39 恢復旋轉排序陣列

2021-07-31 02:29:56 字數 476 閱讀 9938

給定乙個旋轉排序陣列,在原地恢復其排序。

什麼是旋轉陣列?

比如,原始陣列為[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)時間複雜度

迴圈將頭部放到後面,知道遇到比下乙個值比當前值小的時候停止。

void recoverrotatedsortedarray(vector

&nums)

nums.erase(nums.begin());

nums.push_back(temp);

}int temp = nums[0];

nums.erase(nums.begin());

nums.push_back(temp);

}

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

39 恢復旋轉排序陣列

給定乙個 旋轉排序陣列,在原地恢復其排序。說明什麼是旋轉陣列?樣例 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...

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 方法...