旋转数组---python,No不需要循环(呜呜呜,妈妈~我出息了)

 真不敢相信我居然,没有用循环,纯纯小白文大佬请原谅@——@嘿嘿

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

最开始的时候我想这,python就很简单 ,不就是换个位置嘛,然后直接一个大弄特NO!!!姐妹们他有坑,这是我刚开的框架,我看着这没问题啊,但是就是通不过,好生气!

 直到我看到

class Solution:

    def rotate(self, nums: List[int], k: int) -> None:

        """

        Do not return anything, modify nums in-place instead.

        """

是它就是它!!!不能换地址

因为它不返回值

如果宝贝们没注意,就提交,力扣公关只会说,你这个题OUT,因为它是根据地址来输出nums数组

说通俗一点存一个数据,1.内容,2.地址

呢如何使用上种方法,而且不换地址 ,大家看看下面的几个例子

很明显当a[:] =c时,a的地址没有改变,当a=c时,a的地址则会被改变

这不就好办了,在最后a后面加个[ : ]不就OK,了!

废话不多说,代码奉上~~

class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        b=len(nums)
        if(k<=b):
            nums[:]=nums[b-k:]+nums[0:b-k]
        else:
            k=k%b
            nums[:]=nums[b-k:]+nums[0:b-k]#加[:]!!!

a=[1,2,3,4,5,6,7]
k=3
solution=Solution()
c=solution.rotate(a,k)

下面是一个,小的的错误分享,大人们也可以跳过

在我提交的二次,它就差一点对了,它报了,这样一个错

 没想到当时,我也很蒙,我想这咋还能移第五个呢???我用重新审题了,原来它是轮回的所以我再次修改,当移动的值大于数组元素个数时,就是取余,其余都是轮回,OK,不知道有没有小可爱和我犯一样错,呜呜呜

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值