You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Rotate Array的Python解法在LeetCode失效但VSCode正常?

问题原因分析
  • 未原地修改数组:LeetCode的该题目要求直接修改传入的nums数组本身,你的代码是创建新数组并返回,原数组并未被改动。LeetJudge会检查原数组的状态,而非你返回的新数组,这是核心问题。
  • 未处理k大于数组长度的情况:当k的值大于数组长度时,比如数组长度为3、k=5,此时len(nums)-k = -2,虽然Python切片语法能处理负数索引,但实际有效旋转步数应为k % len(nums)(5%3=2,即向右转2步),直接计算x = len(nums)-k会导致错误的切片结果。
修正后的代码示例
class Solution(object):
    def rotate(self, nums, k):
        n = len(nums)
        k = k % n  # 处理k大于数组长度的情况
        # 原地修改数组,通过切片赋值覆盖原数组
        nums[:] = nums[n - k:] + nums[:n - k]

内容的提问来源于stack exchange,提问作者jaafar yousssef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 15:28:08