Skip to content

Commit 108da7c

Browse files
solves #2220: Minimum Bit Flips to Convert Number in java
1 parent 653593f commit 108da7c

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,7 @@
722722
| 2206 | [Divide Array Into Equal Pairs](https://leetcode.com/problems/divide-array-into-equal-pairs) | [![Java](assets/java.png)](src/DivideArrayIntoEqualPairs.java) | |
723723
| 2210 | [Count Hills and Valleys in an Array](https://leetcode.com/problems/count-hills-and-valleys-in-an-array) | [![Java](assets/java.png)](src/CountHillsAndValleysInAnArray.java) | |
724724
| 2215 | [Find the Difference of Two Arrays](https://leetcode.com/problems/find-the-difference-of-two-arrays) | [![Java](assets/java.png)](src/FindTheDifferenceOfTwoArrays.java) | |
725-
| 2220 | [Minimum Bit Flips to Convert Number](https://leetcode.com/problems/minimum-bit-flips-to-convert-number) | | |
725+
| 2220 | [Minimum Bit Flips to Convert Number](https://leetcode.com/problems/minimum-bit-flips-to-convert-number) | [![Java](assets/java.png)](src/MinimumBitFlipsToConvertNumber.java) | |
726726
| 2224 | [Minimum Number of Operations to Convert Time](https://leetcode.com/problems/minimum-number-of-operations-to-convert-time) | | |
727727
| 2229 | 🔒 [Check if an array is consecutive](https://leetcode.com/problems/check-if-an-array-is-consecutive) | | |
728728
| 2231 | [Largest Number After Digit Swaps by Parity](https://leetcode.com/problems/largest-number-after-digit-swaps-by-parity) | | |

Diff for: src/MinimumBitFlipsToConvertNumber.java

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// https://leetcode.com/problems/minimum-bit-flips-to-convert-number
2+
// T: O(log(n))
3+
// S: O(1)
4+
5+
public class MinimumBitFlipsToConvertNumber {
6+
public int minBitFlips(int start, int goal) {
7+
return hammingWeight(start ^ goal);
8+
}
9+
10+
private int hammingWeight(int x) {
11+
int result = 0;
12+
while (x > 0) {
13+
x = x & (x - 1);
14+
result++;
15+
}
16+
return result;
17+
}
18+
}

0 commit comments

Comments
 (0)