diff --git a/src/main/java/com/dota/bit/_2154/Solution.java b/src/main/java/com/dota/bit/_2154/Solution.java new file mode 100644 index 0000000..b41b12e --- /dev/null +++ b/src/main/java/com/dota/bit/_2154/Solution.java @@ -0,0 +1,16 @@ +package com.dota.bit._2154; + +class Solution { + + public int findFinalValue(int[] nums, int original) { + var dp = new int[1001]; + for (int num : nums) { + dp[num]++; + } + while(dp[original] > 0) { + original <<=1; + } + return original; + } + +} \ No newline at end of file diff --git a/src/main/java/com/dota/bit/_2220/Solution.java b/src/main/java/com/dota/bit/_2220/Solution.java new file mode 100644 index 0000000..1b9e1ca --- /dev/null +++ b/src/main/java/com/dota/bit/_2220/Solution.java @@ -0,0 +1,7 @@ +package com.dota.bit._2220; + +class Solution { + public int minBitFlips(int start, int goal) { + return Integer.bitCount(start ^ goal); + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/bit/_2595/Solution.java b/src/main/java/com/dota/bit/_2595/Solution.java new file mode 100644 index 0000000..0ceb976 --- /dev/null +++ b/src/main/java/com/dota/bit/_2595/Solution.java @@ -0,0 +1,8 @@ +package com.dota.bit._2595; + +class Solution { + public int[] evenOddBit(int n) { + int a = 0x555555; + return new int[]{Integer.bitCount(n&a), Integer.bitCount(n&(~a))}; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/bit/_2657/Solution.java b/src/main/java/com/dota/bit/_2657/Solution.java new file mode 100644 index 0000000..b2665e2 --- /dev/null +++ b/src/main/java/com/dota/bit/_2657/Solution.java @@ -0,0 +1,29 @@ +package com.dota.bit._2657; + +class Solution { + public int[] findThePrefixCommonArray(int[] A, int[] B) { + var dp = new int[51]; + var res = new int[A.length]; + int cnt = 0; + for (int i = 0; i < A.length; i++) { + if (A[i] == B[i]) { + cnt++; + } else { + if (dp[A[i]] != 0) { + cnt++; + } else { + dp[A[i]]++; + } + + if (dp[B[i]] != 0) { + cnt++; + } else { + dp[B[i]]++; + } + } + + res[i] = cnt; + } + return res; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/bit/_2917/Solution.java b/src/main/java/com/dota/bit/_2917/Solution.java new file mode 100644 index 0000000..bd4b3ae --- /dev/null +++ b/src/main/java/com/dota/bit/_2917/Solution.java @@ -0,0 +1,17 @@ +package com.dota.bit._2917; + +class Solution { + public int findKOr(int[] nums, int k) { + int res = 0; + for (int i = 0; i < 31; i++) { + int count = 0; + for (int num : nums) { + count += (num >> i) & 1; + } + if (count >= k) { + res |= (1< validStrings(int n) { + var res = new HashSet(); + StringBuilder sb = new StringBuilder(); + sb.append("1".repeat(n)); + df(sb, res, 0, "0"); + df(sb, res, 0, "1"); + return new ArrayList<>(res); + } + + void df(StringBuilder sb, Set list, int idx, String s) { + if (idx >= sb.length()) return; + char c = sb.charAt(idx); + sb.replace(idx, idx + 1, s); + list.add(sb.toString()); + if (s.equals("0")) { + df(sb, list, idx + 1, "1"); + } else { + df(sb, list, idx + 1, "0"); + df(sb, list, idx + 1, "1"); + } + sb.setCharAt(idx, c); + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/bit/_3226/Solution.java b/src/main/java/com/dota/bit/_3226/Solution.java new file mode 100644 index 0000000..2e48331 --- /dev/null +++ b/src/main/java/com/dota/bit/_3226/Solution.java @@ -0,0 +1,9 @@ +package com.dota.bit._3226; + +class Solution { + public int minChanges(int n, int k) { + if (n != (n | k)) return -1; + + return Integer.bitCount(n ^ k); + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/bit/_3370/Solution.java b/src/main/java/com/dota/bit/_3370/Solution.java new file mode 100644 index 0000000..20d6b42 --- /dev/null +++ b/src/main/java/com/dota/bit/_3370/Solution.java @@ -0,0 +1,12 @@ +package com.dota.bit._3370; + +class Solution { + public int smallestNumber(int n) { + int res = 1; + while (n > res) { + res <<=1; + res += 1; + } + return res; + } +} \ No newline at end of file