给出一个巧妙方法,可以消去二进制数最右边的1
而不用每次判断最后一位然后除以2,这个方法时间复杂度 (O(log_2 n)) 空间 (O(1))
巧妙方法可以实现,时间复杂度(O(M)),M为二进制数中1的个数
巧用 (n & (n - 1))
- ((n - 1))解析: 二进制数字 n最右边的 1 变成 0 ,此 1右边的 0 都变成 1 。
- (n & (n - 1))解析: 二进制数字 n 最右边的 1 变成 0 ,其余不变。
给出一个巧妙方法,可以消去二进制数最右边的1
而不用每次判断最后一位然后除以2,这个方法时间复杂度 (O(log_2 n)) 空间 (O(1))
巧妙方法可以实现,时间复杂度(O(M)),M为二进制数中1的个数
巧用 (n & (n - 1))