红蓝染色法(二分)

26 年 2 月 22 日 星期日
214 字
2 分钟
Screenshot 2026-02-22 at 12.09.27 am

注意题目中的第一个和**>=**,如果全为8的数组,应该返回第一个数。

Screenshot 2026-02-22 at 12.11.09 am
Screenshot 2026-02-22 at 12.14.36 am

注意这个循环不变量,最初始的时候可以认为红色是-1 蓝色是length,数组中不存在红和蓝。

上面的方法是左闭右闭。

如果是左闭右开的话,循环不变量的初始状态变为 L - 1 (-1) 为红色,right (length) 为蓝色,结束的时候Right始终是蓝色而left === right,所以返回left 和 right 都是一样的

当原题中的 >= 变成如下情况

Screenshot 2026-02-22 at 12.33.02 am
  • 找 > 8 时,等价于找 >= 9
  • 找 < 8 时,等价于找 第一个大于等于8的数 的左边那个数
  • 找 <= 8 时,等价于找 第一个大于8的数 的左边那个数
Screenshot 2026-02-22 at 9.54.36 pm

1385._Find_the_Distance_Value_Between_Two_Arrays.md

2389._Longest_Subsequence_With_Limited_Sum.md

1170._Compare_Strings_by_Frequency_of_the_Smallest_Character.md

文章标题:红蓝染色法(二分)

文章作者:Sirui Chen

文章链接:https://blog.siruichen.me/posts/%E7%BA%A2%E8%93%9D%E6%9F%93%E8%89%B2%E6%B3%95%E4%BA%8C%E5%88%86[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。