双指针算法和位运算
双指针算法:将时间复杂度从n^2降为n。

双指针算法的模板:
for (int i = 0, j = 0; i < n; i ++ )
{
while (j < i && check(i, j)) j ++ ;
// 具体问题的逻辑
}
常见问题分类:
(1) 对于一个序列,用两个指针维护一段区间
(2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作
位运算:
模板
求n的第k位数字: n >> k & 1
返回n的最后一位1:lowbit(n) = n & -n
负数(用补码加1)相当于正数取反加1.
今天学习了四个算法知识点:双指针算法,位运算,离散化,区间合并,但后面两个算法还有点没搞清楚,今天就介绍前面两个算法把。。。
本文来自博客园,作者:天勤也,转载请注明原文链接:https://www.cnblogs.com/XB-gzx/p/15503875.html

浙公网安备 33010602011771号