一天一个算法小技巧,从入门到入土
1.
计算2的幂次,在二进制中可以想到有且仅有一个1,那么 n & (n - 1)可以把最低位的1剔除掉判断结果是否为0,负数的法则在二进制里面为 所有位取反 + 1,所以 n & -n可以只留下最低为的1,判断结果是否为n
2.
计算4的幂次,因为4的幂次必然是2的幂次,所以在2的幂次前提上增加一个条件,1有且仅有1一个而且必须在偶数位上,可以 n & 0b...10101010 是否等于0。
另一个是 4的幂次与3取模为1....
3.
数组进行某种计算时,可以先考虑双指针的办法,剔除掉不可能的值,而且双指针可以从两边开始
4.
有序数组提前考虑二分查找法