【发布时间】:2021-01-04 02:08:54
【问题描述】:
我在 leetcode 上做这个问题:
给定一个数组 nums,其中有 n 个对象,颜色为红色、白色或蓝色,排序 它们就地,以便相同颜色的对象相邻, 颜色按红、白、蓝的顺序排列。
在这里,我们将使用整数 0、1 和 2 来表示红色, 分别是白色和蓝色。
虽然有一个相当令人满意的解决方案,您只需一次将 0 推到左侧,将 2 推到右侧,但我很难理解为什么计数排序也不能算作就地排序解决这个问题。
毕竟,您只需要恒定的计算空间。
您可以争辩“当然,但如果我说有 N 种颜色,它就不再是恒定空间”,但这只是一个不同的问题,预期的解决方案不适用于 N 种颜色。
那么,是什么让计数排序不是一个出色、有效的问题答案呢?
【问题讨论】: