文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
颜色分类
解题思路
荷兰国旗问题,三指针算法。
使用三个指针(low、mid 和 high)来遍历和排序数组。执行过程中,所有位于 low 指针左侧的元素都是红色,位于 high 指针右侧的元素都是蓝色,确保所有白色元素位于 low 和 high 指针之间。
代码实现
/**
Do not return anything, modify nums in-place instead.
*/
const sortColors = (nums: number[]): void => {
let low: number = 0,
mid: number = 0,
high: number = nums.length - 1;
while (mid <= high) {
switch (nums[mid]) {
case 0:
[nums[mid], nums[low]] = [nums[low], nums[mid]];
low++;
mid++;
break;
case 1:
mid++;
break;
case 2:
[nums[mid], nums[high]] = [nums[high], nums[mid]];
high--;
break;
default:
return;
}
}
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论