2025年颜色代码种类(颜色代码规则)

颜色代码种类(颜色代码规则)p 思路 荷兰国旗问题 p 这道题和这个经典问题是同一个问题 其实就是 00 11 22 这中间两个逗号就是划分线 刚开始的时候 线在数组的两端 可以观察看到 第一个逗号的左边是 0 第二个逗号的右边是 2 也就是说 第一个划分线的左边必须全是 0 才行 第二个划分线的右边必须全是 2 才行 所以这样就可以下个结论 我们可以用双指针的做法

大家好,我是讯享网,很高兴认识大家。



 <p>思路&#xff1a;荷兰国旗问题</p> 

讯享网

这道题和这个经典问题是同一个问题。

其实就是00,11,22这中间两个逗号就是划分线,刚开始的时候,线在数组的两端。

可以观察看到,第一个逗号的左边是0,第二个逗号的右边是2,也就是说,第一个划分线的左边必须全是0才行;第二个划分线的右边必须全是2才行。

所以这样就可以下个结论:我们可以用双指针的做法,把这些数回归到它们该回归的地方去。

因此,会有三个变量l,r,i。最后一个变量表示当前遍历元素的变量下标。


讯享网

当nums[i]==0的时候,我们就把它和左指指向的元素交换,然后我们再让左指针向前移,然后i变量也向前移;

当nums[i]==2的时候,我们就把它和右指针指向的元素进行交换,然后我们再让右指针向后移动,这个时候注意,i是不会发生变化的,因为i必须在l和r中间,并且,当右指针变化的时候i不用变化的原因就是:这个时候交换了的元素我们还没有遍历到,我们需要再次遍历这个位置上的元素,判断它的值是多少。

之后以此类推,当i超出了r边界的时候,我们就停止即可。

讯享网

小讯
上一篇 2025-06-06 12:56
下一篇 2025-05-22 20:02

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/199519.html