题解 | #旋转数组#

旋转数组

https://www.nowcoder.com/practice/e19927a8fd5d477794dac67096862042

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 旋转数组
# @param n int整型 数组长度
# @param m int整型 右移距离
# @param a int整型一维数组 给定数组
# @return int整型一维数组
#
class Solution:
    def solve(self , n: int, m: int, a: List[int]) -> List[int]:
        move = m % n
        # [1,2,3,4,5,6] --> [6,5,4,3,2,1]
        a = self.reverse(a, 0, len(a) - 1)
        # [6,5,4,3,2,1] --> [5,6,4,3,2,1]
        a = self.reverse(a, 0, move - 1)
        # [5,6,4,3,2,1] --> [5,6,1,2,3,4]
        a = self.reverse(a, move, len(a) - 1)
        return a

    # 用于对列表start到end部分进行逆序。
    def reverse(self, lst, start, end):
        # 用首尾双指针反转列表指定部分。
        while end - start >= 1:
            temp = lst[start]
            lst[start] = lst[end]
            lst[end] = temp
            start += 1
            end -= 1
        
        return lst

全部评论

相关推荐

LuvSran:是人我吃。老师就是学校呆久了,就业方面啥都不懂,还自以为是为了我们就业好。我学校就一破双非,计科入行率10%都没有,某老师还天天点名,说是出勤率抬头率前排率高了,华为什么的大厂就会来,我们就是不好好上课才没有厂来招。太搞笑了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务