位运算:
算术右移i位:a>>i
算术左移i位:a<<i
算数移动,正数左右移动均补零,负数左移补0,右移补1
按位取反:~
或:|
异或:^
与:&
避免上位运算优先级产生问题,尽量使用括号(见剑指 Offer II 004 只出现一次的数字)
双指针
适用于:需要定位两个点的问题,如左右指针缩进(临界条件left<right),或者快慢指针(临界条件直接设置如快指针越界)
注意:当有负数权值的时候,滑动窗口和快慢指针往往难以使用,表现为窗口增大窗口值不增大,或者指针移动后某个数据不具有单调性,这种时候可以考虑前后缀和+哈希优化(剑指 Offer II 010. 和为 k 的子数组)
剑指专项刷题笔记01-位运算和双指针
最新推荐文章于 2024-07-11 15:49:26 发布