<rp id="wnpn7"><ruby id="wnpn7"></ruby></rp>
<progress id="wnpn7"><track id="wnpn7"><rt id="wnpn7"></rt></track></progress>
<ruby id="wnpn7"></ruby>
<ruby id="wnpn7"><blockquote id="wnpn7"><div id="wnpn7"></div></blockquote></ruby>

    1. <em id="wnpn7"><ruby id="wnpn7"><input id="wnpn7"></input></ruby></em>
      1. <button id="wnpn7"><acronym id="wnpn7"></acronym></button><button id="wnpn7"><acronym id="wnpn7"></acronym></button>

        <rp id="wnpn7"><acronym id="wnpn7"></acronym></rp>

        <li id="wnpn7"><object id="wnpn7"><u id="wnpn7"></u></object></li>
        VB.net 2010 視頻教程 VB.net 2010 視頻教程 python基礎視頻教程
        SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
        當前位置:
        首頁 > 編程開發 > Python基礎教程 >
        • python基礎教程之旋轉數組-python

        本站最新發布   Python從入門到精通|Python基礎教程
        試聽地址  
        http://www.squ68.com/eschool/python.html


        旋轉數組

        給定一個數組,將數組中的元素向右移動 個位置,其中 是非負數。

        示例 1:

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

        示例 2:

        輸入: [-1,-100,3,99]k = 2
        輸出: [3,99,-1,-100]
        解釋: 
        向右旋轉 1 步: [99,-1,-100,3]
        向右旋轉 2 步: [3,99,-1,-100]

        說明:

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

        解答

        方案1

        一個一個旋轉

        旋轉數組是一個 進隊列  出隊列 動作,用下標來控制進出順序

        k是要移動的次數,輸入數組的長度是隊的長度,長度減去次數就是元素將要移動到位置的下標地址

        k要對長度取余不出錯

        復制代碼
        class Solution:
            def rotate(self, nums, k):
                """
                Do not return anything, modify nums in-place instead.
                """
                temp = []
                l = len(nums)
                k = k%l
                for i in range(l):
                    temp.append(nums[(i-k)])
                    
                nums[:] = temp
                
        復制代碼

        方案2

        列表鏈接    數組分成兩部分重新合并,

        復制代碼
        class Solution(object):
            def rotate(self, nums, k):
                """
                Do not return anything, modify nums in-place instead.
                """
            k = k%len(nums) 
            nums[:] = nums[-k:]+nums[:-k]
        復制代碼

        方案3

        使用隊列

        復制代碼
        class Solution(object):
            def rotate(self, nums, k):
                """
                :type nums: List[int]
                :type k: int
                :rtype: None Do not return anything, modify nums in-place instead.
                """
                for _ in range(k):
                    nums.insert(0, nums.pop())
        復制代碼

        前一個自己編寫,后兩個https://www.jianshu.com/p/cf413a3f120a的作者編寫

        相關教程
                
        免费看成年人视频大全_免费看成年人视频在线观看