真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

實(shí)現(xiàn)Python3數(shù)組旋轉(zhuǎn)的方法-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

尋烏ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!

這篇文章將為大家詳細(xì)講解有關(guān)實(shí)現(xiàn)Python3數(shù)組旋轉(zhuǎn)的方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

Python3實(shí)現(xiàn)旋轉(zhuǎn)數(shù)組的3種算法

下面是Python3實(shí)現(xiàn)的旋轉(zhuǎn)數(shù)組的3種算法。

一、題目

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

例如:

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

說(shuō)明:

1.盡可能想出更多的解決方案,至少有三種不同的方法可以解決這個(gè)問(wèn)題。

2.要求使用空間復(fù)雜度為 O(1) 的原地算法。

二、解題算法

解法一

以倒數(shù)第 k 個(gè)值為分界線,把 nums 截成兩組再組合。因?yàn)?k 可能大于 nums 的長(zhǎng)度(當(dāng)這兩者相等的時(shí)候,就相當(dāng)于 nums 沒(méi)有移動(dòng)),所以我們?nèi)?k % len(nums),k 和 nums 的長(zhǎng)度取余,就是最終我們需要移動(dòng)的位置

代碼如下:

if nums:
  k = k % len(nums)
  nums[:]=nums[-k:]+nums[:-k]

時(shí)間:64ms

假設(shè):

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

k =3

運(yùn)行結(jié)果:

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

解法二

先把 nums 最后一位移動(dòng)到第一位,然后刪除最后一位,循環(huán)k次。k = k % len(nums) ,取余

代碼如下:

if nums:
  k = k % len(nums)
  while k > 0:
    k -= 1
    nums.insert(0, nums[-1])
    nums.pop()

時(shí)間:172ms

假設(shè):

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

k =3

運(yùn)行結(jié)果:

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

解法三

先把 nums 復(fù)制到 old_nums ,然后 nums 中索引為 x 的元素移動(dòng) k 個(gè)位置后,當(dāng)前索引為 x+k,其值為 old_nums[x]。,所以我們把 x+k 處理成 (x+k)%len(nums),取余操作,減少重復(fù)的次數(shù)。

代碼如下:

if nums:
  old_nums = nums[:]
  l = len(nums)
  for x in range(l):
    nums[(x+k) % l] = old_nums[x]

時(shí)間:64ms

假設(shè):

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

k =3

運(yùn)行結(jié)果:

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

關(guān)于實(shí)現(xiàn)Python3數(shù)組旋轉(zhuǎn)的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


網(wǎng)頁(yè)標(biāo)題:實(shí)現(xiàn)Python3數(shù)組旋轉(zhuǎn)的方法-創(chuàng)新互聯(lián)
分享地址:http://weahome.cn/article/doppgi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部