1.5 面试经典150题 - 轮转数组

轮转数组

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

注意:本题需要原地操作

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.
        """
        if not nums: return
        count = len(nums)
        k = k % count
        nums[:] = nums[::-1]
        nums[:k] = nums[:k][::-1]
        nums[k:] = nums[k:][::-1]

本题解题思路是:

以[]1, 2, 3, 4, 5, 6, 7] 3 为例

1. 先整体轮转,将 [1, 2, 3, 4, 5, 6, 7]转为 [7, 6, 5, 4, 3, 2, 1]

2. 再局部分别轮转前k个和剩余的,[5, 6, 7,   1, 2, 3, 4],即为答案

这里要注意,列表的操作:

nums = nums[::-1]

nums = nums[-k:] + nums[:-k]

以及

nums.extend(nums); nums = nums[length - k:-k]

这些写法,nums地址都变了,所以不是原地修改

相关推荐

  1. 1.5 面试经典150 - 轮转数组

    2024-01-17 04:12:01       50 阅读
  2. 【LeetCode】面试经典150:189.轮转数组

    2024-01-17 04:12:01       28 阅读
  3. 力扣面试150轮转数组

    2024-01-17 04:12:01       63 阅读
  4. Leetcode面试经典150_Q189轮转数组

    2024-01-17 04:12:01       35 阅读
  5. LeetCode经典150Golang版.189. 轮转数组

    2024-01-17 04:12:01       68 阅读
  6. 面试经典150(15-19)

    2024-01-17 04:12:01       57 阅读
  7. 面试经典150(10-13)

    2024-01-17 04:12:01       57 阅读
  8. 面试经典 150

    2024-01-17 04:12:01       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-17 04:12:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-17 04:12:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-17 04:12:01       82 阅读
  4. Python语言-面向对象

    2024-01-17 04:12:01       91 阅读

热门阅读

  1. Spring Boot整理-Spring Boot的优势

    2024-01-17 04:12:01       47 阅读
  2. C语言中的命名规则(期末版)

    2024-01-17 04:12:01       56 阅读
  3. 什么是WiMAX技术?WiMAX宽带技术的关键技术

    2024-01-17 04:12:01       58 阅读
  4. 2024.1.13 Kafka六大机制和Structured Streaming

    2024-01-17 04:12:01       45 阅读
  5. 隐私计算的技术体系有哪些

    2024-01-17 04:12:01       56 阅读
  6. monorepo工程开发交互nodejs命令行程序

    2024-01-17 04:12:01       54 阅读
  7. Kubernetes 面试宝典

    2024-01-17 04:12:01       46 阅读
  8. HTML5笔记

    2024-01-17 04:12:01       53 阅读
  9. ubuntu卸载docker

    2024-01-17 04:12:01       52 阅读
  10. 代码随想录-刷题第五十六天

    2024-01-17 04:12:01       62 阅读
  11. 【大模型应用】小白借助chatgpt开发谷歌插件

    2024-01-17 04:12:01       42 阅读
  12. 【代码随想录】3

    2024-01-17 04:12:01       47 阅读