力扣热题100_普通数组_189_轮转数组


题目链接

189. 轮转数组

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

示例 1:

输入: nums = [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:

输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释:
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]

解题思路

数组翻转
1.初始化定义n(nums数组长度)、k(数组右转k次)
2.定义函数翻转函数,传入参数nums数组、left、right,当前left < right 时
2(1).left所在nums数组索引的值赋值给tmp
2(2).right所在nums数组索引的值赋值给left所在nums数组索引的值,
2(3).tmp赋值给right所在nums数组索引的值
2(4).left的值+1,left的值-1
3.整体翻转
4.数组左边,以索引0开始,索引k-1结束
5.数组右边,以索引k开始,索引n-1结束

3.之前结束值及当前i的结束值取其最大值,重新赋值给end
4.循环遍历结束,将当前起始值及结束值保存至ret数组里

解题代码

class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        n = len(nums)
        k = k % n
        self.reverse(nums, 0, n - 1)
        self.reverse(nums, 0, k - 1)
        self.reverse(nums, k, n - 1)

    def reverse(self, nums: List[int], left: int, right: int) -> None:
        while left < right:
            tmp = nums[left]
            nums[left] = nums[right]
            nums[right] = tmp
            left += 1
            right -= 1

相关推荐

  1. 100_普通数组_189_轮转数组

    2024-03-10 23:00:04       41 阅读
  2. 100道-普通数组

    2024-03-10 23:00:04       49 阅读
  3. 100189.轮转数组

    2024-03-10 23:00:04       59 阅读
  4. 面试150轮转数组

    2024-03-10 23:00:04       63 阅读
  5. 189.轮转数组

    2024-03-10 23:00:04       42 阅读
  6. 189. 轮转数组

    2024-03-10 23:00:04       25 阅读

最近更新

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

    2024-03-10 23:00:04       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 23:00:04       97 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 23:00:04       78 阅读
  4. Python语言-面向对象

    2024-03-10 23:00:04       88 阅读

热门阅读

  1. Codeforces-1935E:Distance Learning Courses in MAC(思维)

    2024-03-10 23:00:04       40 阅读
  2. MySQL利用逻辑备份恢复误删的数据库

    2024-03-10 23:00:04       38 阅读
  3. 专家现场及网络安全分析

    2024-03-10 23:00:04       42 阅读
  4. 网络协议学习DAY1

    2024-03-10 23:00:04       36 阅读
  5. Android Q - 应用保活记录(展锐平台)

    2024-03-10 23:00:04       41 阅读
  6. 泛微ecology9开发

    2024-03-10 23:00:04       42 阅读
  7. Linux 自动检测进程是否存活,如果挂掉自动拉起

    2024-03-10 23:00:04       39 阅读
  8. 读书·基于RISC-V和FPGA的嵌入式系统设计

    2024-03-10 23:00:04       36 阅读
  9. mysql 中的一些重要函数

    2024-03-10 23:00:04       46 阅读
  10. MySql分布式事务

    2024-03-10 23:00:04       31 阅读
  11. react在什么时候请求接口

    2024-03-10 23:00:04       42 阅读
  12. leetcode热题100训练计划

    2024-03-10 23:00:04       37 阅读
  13. react,hooks中的useRef使用

    2024-03-10 23:00:04       41 阅读