最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年09月16日 07:48:58   作者:silencement  
在本篇文章里小編給大家整理的是一篇關(guān)于實(shí)現(xiàn)Python3數(shù)組旋轉(zhuǎn)的3種算法實(shí)例內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。

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]

說明:

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

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

二、解題算法

解法一

以倒數(shù)第 k 個(gè)值為分界線,把 nums 截成兩組再組合。因?yàn)?k 可能大于 nums 的長(zhǎng)度(當(dāng)這兩者相等的時(shí)候,就相當(dāng)于 nums 沒有移動(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)的3種算法實(shí)例的文章就介紹到這了,更多相關(guān)3種算法實(shí)現(xiàn)Python3數(shù)組的旋轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中super()的理解以及應(yīng)用場(chǎng)景實(shí)例

    Python中super()的理解以及應(yīng)用場(chǎng)景實(shí)例

    在python中關(guān)于類的定義可以分為兩種:老式類&新式類,在新式類中有這么一種方法super( ),下面這篇文章主要給大家介紹了關(guān)于Python中super()的理解以及應(yīng)用場(chǎng)景的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • Python基于Tkinter編寫crc校驗(yàn)工具

    Python基于Tkinter編寫crc校驗(yàn)工具

    這篇文章主要介紹了Python基于Tkinter編寫crc校驗(yàn)工具,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Python中itertools模塊的使用教程詳解

    Python中itertools模塊的使用教程詳解

    itertools是python內(nèi)置的模塊,使用簡(jiǎn)單且功能強(qiáng)大。本文將詳細(xì)為大家講解一下itertools模塊的使用方法,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-05-05
  • pytest自動(dòng)化測(cè)試數(shù)據(jù)驅(qū)動(dòng)yaml/excel/csv/json

    pytest自動(dòng)化測(cè)試數(shù)據(jù)驅(qū)動(dòng)yaml/excel/csv/json

    這篇文章主要為大家介紹了pytest自動(dòng)化測(cè)試數(shù)據(jù)驅(qū)動(dòng)yaml/excel/csv/json的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Windows自動(dòng)化Python?pyautogui?RPA操作實(shí)現(xiàn)

    Windows自動(dòng)化Python?pyautogui?RPA操作實(shí)現(xiàn)

    本文詳細(xì)介紹了使用Python的pyautogui庫進(jìn)行Windows自動(dòng)化操作的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • pytorch Dropout過擬合的操作

    pytorch Dropout過擬合的操作

    這篇文章主要介紹了pytorch Dropout過擬合的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 利用Python pyecharts繪制餅圖

    利用Python pyecharts繪制餅圖

    這篇文章主要介紹了利用Python pyecharts繪制餅圖,餅圖主要用于表現(xiàn)不同類目的數(shù)據(jù)在總和中的占比。每個(gè)的弧度不是數(shù)據(jù)量的占比,下面我們一起進(jìn)入文章看看具體的實(shí)現(xiàn)過程吧,需要的朋友也可以參考一下
    2021-12-12
  • Django中的settings.py文件使用全解析

    Django中的settings.py文件使用全解析

    這篇文章主要介紹了Django中的settings.py文件使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Python實(shí)現(xiàn)base64編碼

    Python實(shí)現(xiàn)base64編碼

    這篇文章介紹了Python實(shí)現(xiàn)base64編碼的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python使用socket實(shí)現(xiàn)組播與發(fā)送二進(jìn)制數(shù)據(jù)

    Python使用socket實(shí)現(xiàn)組播與發(fā)送二進(jìn)制數(shù)據(jù)

    在工作中經(jīng)常會(huì)用到socket傳輸數(shù)據(jù),例如客戶端給服務(wù)器發(fā)送數(shù)據(jù)(雙方約定了數(shù)據(jù)格式),本文主要介紹了Python使用socket實(shí)現(xiàn)組播與發(fā)送二進(jìn)制數(shù)據(jù),感興趣的可以了解一下
    2021-06-06

最新評(píng)論

罗山县| 双峰县| 平果县| 天祝| 四平市| 张北县| 政和县| 余江县| 淮滨县| 长丰县| 黑水县| 阿坝县| 繁昌县| 望奎县| 禹城市| 婺源县| 泰宁县| 阿克苏市| 安达市| 柳河县| 紫阳县| 雷山县| 鹰潭市| 舟曲县| 天柱县| 亳州市| 香港| 沂南县| 苗栗市| 雅安市| 专栏| 天门市| 和田县| 吉林省| 彭州市| 阿荣旗| 乐陵市| 宜州市| 蓝田县| 洱源县| 富锦市|