Files
leetcode/top-100-liked/98/leetcode_test.go
T
2026-07-23 16:56:50 +08:00

56 lines
1.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package top100liked
import (
"testing"
)
// https://leetcode.cn/problems/sort-colors/?envType=study-plan-v2&envId=top-100-liked
// 75. 颜色分类
//
// 给定一个包含红色、白色和蓝色、共 `n` 个元素的数组 `nums` ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
// 我们使用整数 `0`、 `1` 和 `2` 分别表示红色、白色和蓝色。
// 必须在不使用库内置的 sort 函数的情况下解决这个问题。
// 示例 1
// 输入:nums = [2,0,2,1,1,0]
// 输出:[0,0,1,1,2,2]
// 示例 2
// 输入:nums = [2,0,1]
// 输出:[0,1,2]
//
// 提示:
// - `n == nums.length`
// - `1 <= n <= 300`
// - `nums[i]` 为 `0`、`1` 或 `2`
// 进阶:
// - 你能想出一个仅使用常数空间的一趟扫描算法吗?
//
func sortColors(nums []int) {
}
func TestSortColors(t *testing.T) {
cases := []struct {
name string
nums []int
want []int
}{
{"example1", []int{2, 0, 2, 1, 1, 0}, []int{0, 0, 1, 1, 2, 2}},
{"example2", []int{2, 0, 1}, []int{0, 1, 2}},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
sortColors(c.nums)
if len(c.nums) != len(c.want) {
t.Errorf("got %v, want %v", c.nums, c.want)
return
}
for i := range c.nums {
if c.nums[i] != c.want[i] {
t.Errorf("got %v, want %v", c.nums, c.want)
return
}
}
})
}
}