diff --git a/src/main.rs b/src/main.rs index d3b1daf..74c44e7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,17 +4,17 @@ struct Solution; mod arr; impl Solution { - pub fn bitwise_complement(n: i32) -> i32 { - let mut a = 1; - for i in 1.. n.count_ones() + n.count_zeros() - n.leading_zeros() { - a |= 1 << i; + pub fn find_complement(num: i32) -> i32 { + if num == 0{ + 1 + }else { + num.bitxor((1 << (num.count_ones() + num.count_zeros() - num.leading_zeros())) - 1) } - n.bitxor(a) } } fn main() { - let result = Solution::bitwise_complement(0); + let result = Solution::find_complement(0); // let result = Solution::number_of_stable_arrays(200, 200, 25); println!("{:?}", result); }