给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。
必须在不使用库内置的 sort 函数的情况下解决这个问题。
/** * @param {number[]} nums * @return {void} Do not return anything, modify nums in-place instead. */ const sortColors = (nums = [2, 0, 2, 1, 1, 0]) => { const len = nums.length let l = 0, r = len - 1, i = 0 while (i <= r) { if (nums[i] > 1) { [nums[i], nums[r]] = [nums[r], nums[i]] r-- } else if (nums[i] < 1) { [nums[l], nums[i]] = [nums[i], nums[l]] l++ i++ } else { i++ } } return nums };
标签:return,nums,++,分类,len,else,颜色,const From: https://www.cnblogs.com/zhenjianyu/p/17131889.html