题解 | 旋转数组

旋转数组

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

题解中的b和c还是使用了新的数组。

可以写一个新办法一个一个换。

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 旋转数组
# @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]:
        # 取模操作,确保 m 在数组长度范围内
        m = m % n

        def reverse(arr, start, end):
            while start < end:
                arr[start], arr[end] = arr[end], arr[start]
                start += 1
                end -= 1

        # 反转整个数组
        reverse(a, 0, n - 1)
        # 反转前 m 个元素
        reverse(a, 0, m - 1)
        # 反转剩余的 n - m 个元素
        reverse(a, m, n - 1)

        return a

全部评论

相关推荐

06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
07-15 14:14
门头沟学院 Java
7.10投递7.15感谢信
投递地平线等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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