From ca8fea83c00e77a69d79ab772c7803d9d20b3c9f Mon Sep 17 00:00:00 2001 From: bumpsoo Date: Thu, 22 Aug 2024 21:50:02 +0900 Subject: [PATCH] https://leetcode.com/problems/number-complement --- easy/number_complement.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 easy/number_complement.py diff --git a/easy/number_complement.py b/easy/number_complement.py new file mode 100644 index 0000000..e57f19e --- /dev/null +++ b/easy/number_complement.py @@ -0,0 +1,12 @@ +# https://leetcode.com/problems/number-complement +class Solution: + def findComplement(self, num: int) -> int: + def bit_length(num): + if num == 0: + return 1 + return len(bin(num)) - 2 + width = bit_length(num) + inverted = ~num + mask = (1 << width) - 1 + result = inverted & mask + return result