LeetCode 力扣 189 旋轉陣列 字串

2021-10-09 15:06:04 字數 1226 閱讀 5273

大家覺得寫還可以,可以點讚、收藏、關注一下吧!

也可以到我的個人部落格參觀一下,估計近幾年都會一直更新!和我做個朋友吧!

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

輸入: [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]

輸入: [-1,-100,3,99] 和 k = 2

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

解釋:

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

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

盡可能想出更多的解決方案,至少有三種不同的方法可以解決這個問題。

要求使用空間複雜度為 o(1) 的 原地 演算法。

原陣列:1 2 3 4 5整個陣列翻轉一次:5 4 3 2 1反轉從0開始反轉k(假設為2)個元素:4 5 3 2 1反轉從k開始:4 5 1 2 3得到結果

class

solution

public

void

reverse

(int

nums,

int start,

int end)

}}

時間複雜度:o(n

)o(n)

o(n)

。 n 個元素被反轉了總共 3 次。

空間複雜度:o(1

)o(1)

o(1)

。 沒有使用額外的空間。

2023年9月20日更

大家覺得寫還可以,可以點讚、收藏、關注一下吧!

也可以到我的個人部落格參觀一下,估計近幾年都會一直更新!和我做個朋友吧!

力扣189 旋轉陣列

三種解法,解法一很容易想到,後兩種解法比較巧妙,在這裡記錄一下。每次將陣列每一位向後挪動一位,挪動k nums.length次 k nums.length是因為挪動nums.length的倍數次相當於沒有挪動 時間複雜度 o kn 空間複雜度 o 1 class solution nums 0 la...

力扣(LeetCode)61 旋轉鍊錶

思路 先計算出head鍊錶的長度 通過觀察,發現題目的意思是從鍊錶的末尾依次取出元素放置鍊錶頭部,那麼這一定是個迴圈 參見示例2 所以在k len的時候可以將k n len,那麼新的k如果和len相等,那就剛好湊成乙個迴圈,直接返回head即可,否則進入迴圈,找到第len k個元素 頭節點為1 設為...

LeetCode189 旋轉陣列

這個部落格就用來記錄學習過程中遇到的一些問題吧,菜雞一枚,歡迎各位大佬指正批評。先對前面部分進行反轉 0,len k 1 再對後面部分進行反轉 len k,nums.size 1 最後對整個陣列進行反轉即可實現邏輯右移k位。1.提交編譯的時候遇到了陣列越界問題 double free or corr...