您当前的位置: 首页 > 

宝哥大数据

暂无认证

  • 0浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

189. 旋转数组

宝哥大数据 发布时间:2019-10-30 10:56:26 ,浏览量:0

一、189. 旋转数组 1.1、题目描述

在这里插入图片描述

1.2、方法 1.2.1、使用额外数组置换
class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        tmp = [0 for _ in range(len(nums))]
        
        for i in range(len(nums)):
        	# 原本数组里下标为 ii 的我们把它放到 (i+k)\%数组长度(i+k)%数组长度 的位置
            tmp[(i+k)%len(nums)] = nums[i]             
        
        for i in range(len(nums)):
            nums[i] = tmp[i]
1.2.2、使用环状替换 — 让座位

第i个同学去找第i+k+1同学的位置, i+k+1同学被挤出,寻找他的位置 分两种情况

  • (1)、i同学经过多次遍历回到原位置 在这里插入图片描述
  • (2)、未回到原位置(k=2) 在这里插入图片描述
class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        count = 0 # 记录替换的位置
        ln = len(nums)
        k = k % ln
        
        start = 0
        while start  None:
        while start             
关注
打赏
1587549273
查看更多评论
0.0380s