Skip to content

Commit ed23dc5

Browse files
solves number complemet
1 parent 9a2f8b5 commit ed23dc5

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
| 461 | [Hamming Distance](https://leetcode.com/problems/hamming-distance) | Easy | [![Java](https://img.icons8.com/color/40/000000/java-coffee-cup-logo.png)](src/HammingDistance.java) [![Python](https://img.icons8.com/color/35/000000/python.png)](python/hamming_distance.py) |
127127
| 463 | [Island Perimeter](https://leetcode.com/problems/island-perimeter) | Easy | [![Java](https://img.icons8.com/color/40/000000/java-coffee-cup-logo.png)](src/IslandPerimeter.java) [![Python](https://img.icons8.com/color/35/000000/python.png)](python/island_perimeter.py) |
128128
| 475 | [Heaters](https://leetcode.com/problems/heaters) | Medium | [![Java](https://img.icons8.com/color/40/000000/java-coffee-cup-logo.png)](src/Heaters.java) [![Python](https://img.icons8.com/color/35/000000/python.png)](python/heaters.py) |
129-
| 476 | [Number Complement](https://leetcode.com/problems/number-complement) | Easy | [![Java](https://img.icons8.com/color/40/000000/java-coffee-cup-logo.png)](src/NumberComplement.java) |
129+
| 476 | [Number Complement](https://leetcode.com/problems/number-complement) | Easy | [![Java](https://img.icons8.com/color/40/000000/java-coffee-cup-logo.png)](src/NumberComplement.java) [![Python](https://img.icons8.com/color/35/000000/python.png)](python/number_complement.py) |
130130
| 482 | [License Key Formatting](https://leetcode.com/problems/license-key-formatting) | Easy | [![Java](https://img.icons8.com/color/40/000000/java-coffee-cup-logo.png)](src/LicenseKeyFormatting.java) |
131131
| 485 | [Max Consecutive Ones](https://leetcode.com/problems/max-consecutive-ones) | Easy | [![Java](https://img.icons8.com/color/40/000000/java-coffee-cup-logo.png)](src/MaxConsecutiveOnes.java) |
132132
| 492 | [Construct the Rectangle](https://leetcode.com/problems/construct-the-rectangle) | Easy | [![Java](https://img.icons8.com/color/40/000000/java-coffee-cup-logo.png)](src/ConstructTheRectangle.java) [![Python](https://img.icons8.com/color/35/000000/python.png)](python/construct_the_rectangle.py) |

Diff for: python/number_complement.py

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution:
2+
def highest_one_bit(self, i: int) -> int:
3+
i |= (i >> 1)
4+
i |= (i >> 2)
5+
i |= (i >> 4)
6+
i |= (i >> 8)
7+
i |= (i >> 16)
8+
return i - (i >> 1)
9+
10+
def findComplement(self, number: int) -> int:
11+
return ~number & (self.highest_one_bit(number) - 1)
12+

Diff for: src/NumberComplement.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
public class NumberComplement {
2-
public static int findComplement(int n) {
3-
int numberOfBits = (int) (Math.floor(Math.log(n) / Math.log(2))) + 1;
4-
return ((1 << numberOfBits) - 1) ^ n;
2+
public static int findComplement(int number) {
3+
return ~number & (Integer.highestOneBit(number) - 1);
54
}
65
}

0 commit comments

Comments
 (0)