leetcode 旋轉陣列

2021-08-22 02:35:18 字數 1232 閱讀 8840

給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。

示例 1:

輸入:

[1,2,3,4,5,6,7]

和 k = 3

輸出:[5,6,7,1,2,3,4]

解釋:向右旋轉 1 步:[7,1,2,3,4,5,6]

向右旋轉 2 步: [6,7,1,2,3,4,5]

向右旋轉 3 步:[5,6,7,1,2,3,4]

示例 2:

輸入:[-1,-100,3,99]

和 k = 2

輸出: [3,99,-1,-100]

解釋: 

向右旋轉 1 步: [99,-1,-100,3]

向右旋轉 2 步: [3,99,-1,-100]

說明:

方法一:每次向右移動一位,移動k次。380ms

class solution 

nums[0]=tmp;}}

};

改進方法:先是逆序陣列中全部的元素,然後在分別逆序前k個和後size-k個元素16 ms

class solution 

};

注:c++< algorithm >中定義的reverse函式用於反轉在[first,last)範圍內的順序

template void reverse (bidirectionaliterator first,bidirectionaliterator last);
// reverse algorithm example

#include // std::cout

#include // std::reverse

#include // std::vector

int main ()

函式行為等效於:

template void reverse (bidirectionaliterator first, bidirectionaliterator last)

}

LeetCode 旋轉陣列

將包含n 個元素的陣列向右旋轉 k 步。例如,如果 n 7 k 3,給定陣列 1,2,3,4,5,6,7 向右旋轉後的結果為 5,6,7,1,2,3,4 注意 盡可能找到更多的解決方案,這裡最少有三種不同的方法解決這個問題。要求空間複雜度為 o 1 關聯的問題 反轉字串中的單詞 ii public ...

LeetCode 旋轉陣列

給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1,2,3,4,5,6,7 和 k 3輸出 5,6,7,1,2,3,4 解釋 向右旋轉 1 步 7,1,2,3,4,5,6 向右旋轉 2 步 6,7,1,2,3,4,5 向右旋轉 3 步 5,6,7,1,2,3,4...

leetcode 旋轉陣列

給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1,2,3,4,5,6,7 和 k 3 輸出 5,6,7,1,2,3,4 解釋 向右旋轉 1 步 7,1,2,3,4,5,6 向右旋轉 2 步 6,7,1,2,3,4,5 向右旋轉 3 步 5,6,7,1,2,3,...