首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数组上的左旋转

数组上的左旋转
EN

Stack Overflow用户
提问于 2018-03-24 15:08:43
回答 12查看 8.3K关注 0票数 8

我有一个问题,我需要将一个数组向左旋转k次。

即如果k= 2,1,2,3,4,5。-> 3、4、5、1、2

所以,我的代码是:

代码语言:javascript
运行
复制
def array_left_rotation(a, n, k):
    for i in range(n):
        t = a[i]
        a[i] = a[(i+n-1+k)%n]
        a[(i+n-1+k)%n] = t

    return a

其中n=数组的长度。

我认为问题是一个映射问题,如果k= 1,则是一个-> an-1。

我的解决方案有什么问题?

EN

Stack Overflow用户

发布于 2021-08-27 03:18:06

代码语言:javascript
运行
复制
def rotateLeft(rotation, arr):
    res = [None] * len(arr)
    rotation = rotation % len(arr)
    
    for i in range(0, len(arr)):
        index = i - rotation
        if index < 0:
            index = index + len(arr)
            
        res[index] = arr[i]
    
    return res

代码语言:javascript
运行
复制
def rotateLeft(rotation, arr):
   return arr[rotation:] + arr[:rotation
票数 0
EN
查看全部 12 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49462195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档