LeetCode Sort Colors(颜色分类)自定义代码运行错误原因求解
代码不生效的核心原因
- 题目要求原地修改输入的nums数组,你最后一行的
nums = l只是重新绑定了函数内部的局部变量nums,让它指向你新建的列表l,完全没有修改外部传入的原始数组对象,调用方拿到的数组还是未排序状态,不符合题目要求。 - 直接修正方案:把最后一行
nums = l改为nums[:] = l,切片赋值会直接覆盖原数组的元素内容,满足原地修改的要求。
补充说明
你当前采用的计数排序思路时间复杂度为O(n),在题目给定的输入范围约束下是完全可行的。如果追求O(1)额外空间的最优解,可以参考三指针原地交换的实现方案。
内容的提问来源于stack exchange,提问作者atomic-coder
相关产品推荐
相关产品推荐

