zoukankan      html  css  js  c++  java
  • 189. 旋转数组(leetcode)

    本题思路:三次旋转

      1. 1234567 -》 7654321  经过第一次旋转可把后3位数转到前面

      2. 7654321 -》 5674321  

      3. 5674321 -》5671234

    其他思路:

      1.nums[ : ] =  nums[ k: ] + nums[ :k ]       切片

      2. for i in range(k) : nums.insert(0,nums.pop())

    注意:

      1.本题要求原地修改,所以第一次旋转时:    nums[ : ] = nums[ ::-1 ] 

        a) 如此实在原地址上修改

        a) 如果直接用 nums = nums[ ::-1 ] 赋值给了一个新地址。

      

    代码:

    class Solution:
        def rotate(self, nums: List[int], k: int) -> None:
            """
            Do not return anything, modify nums in-place instead.
            """
            k%=len(nums)
            nums[:] = nums[::-1]
            nums[k:] = nums[k:][::-1]
            nums[:k] = nums[:k][::-1]
            return 
  • 相关阅读:
    中台之交付
    mysql之事务
    中台之中台的设计
    0318 guava并发工具
    0312 java接口测试三棱军刺rest-assured
    0309 软件基本原理1
    0308 软件系统的非功能需求
    PELT(Per-Entity Load Tracking)
    CPU亲和度
    硬件相关知识随手笔记
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12713836.html
Copyright © 2011-2022 走看看