大家覺得寫還可以,可以點讚、收藏、關注一下吧!
也可以到我的個人部落格參觀一下,估計近幾年都會一直更新!和我做個朋友吧!
給定乙個陣列,將陣列中的元素向右移動 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...