日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode189. 旋转数组

發(fā)布時(shí)間:2023/12/13 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode189. 旋转数组 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

給定一個(gè)數(shù)組,將數(shù)組中的元素向右移動(dòng)?k?個(gè)位置,其中?k?是非負(fù)數(shù)。

示例 1:

輸入: [1,2,3,4,5,6,7] 和 k = 3
輸出: [5,6,7,1,2,3,4]
解釋:
向右旋轉(zhuǎn) 1 步: [7,1,2,3,4,5,6]
向右旋轉(zhuǎn) 2 步: [6,7,1,2,3,4,5]
向右旋轉(zhuǎn) 3 步: [5,6,7,1,2,3,4]
示例?2:

輸入: [-1,-100,3,99] 和 k = 2
輸出: [3,99,-1,-100]
解釋:?
向右旋轉(zhuǎn) 1 步: [99,-1,-100,3]
向右旋轉(zhuǎn) 2 步: [3,99,-1,-100]
說明:

盡可能想出更多的解決方案,至少有三種不同的方法可以解決這個(gè)問題。
要求使用空間復(fù)雜度為?O(1) 的?原地?算法。

思路:

假設(shè) n=7 且k=3 。

原始數(shù)組 ? ? ? ? ? ? ? ? ?: 1 2 3 4 5 6 7
反轉(zhuǎn)所有數(shù)字后 ? ? ? ? ? ? : 7 6 5 4 3 2 1
反轉(zhuǎn)前 k 個(gè)數(shù)字后 ? ? ? ? ?: 5 6 7 4 3 2 1
反轉(zhuǎn)后 n-k 個(gè)數(shù)字后 ? ? ? ?: 5 6 7 1 2 3 4 --> 結(jié)果

public class Solution {public void rotate(int[] nums, int k) {k %= nums.length;reverse(nums, 0, nums.length - 1);reverse(nums, 0, k - 1);reverse(nums, k, nums.length - 1);}public void reverse(int[] nums, int start, int end) {while (start < end) {int temp = nums[start];nums[start] = nums[end];nums[end] = temp;start++;end--;}} }

?

總結(jié)

以上是生活随笔為你收集整理的leetcode189. 旋转数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。