kk
This commit is contained in:
23
src/main/java/com/dota/bit/_1310/Solution.java
Normal file
23
src/main/java/com/dota/bit/_1310/Solution.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package com.dota.bit._1310;
|
||||
|
||||
class Solution {
|
||||
public int[] xorQueries(int[] arr, int[][] queries) {
|
||||
var res = new int [queries.length];
|
||||
var dp = new int[arr.length];
|
||||
var x = 0;
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
x ^= arr[i];
|
||||
dp[i] = x;
|
||||
}
|
||||
for (int i = 0; i < queries.length; i++) {
|
||||
if (queries[i][0] == 0) {
|
||||
res[i] = dp[queries[i][1]];
|
||||
} else if (queries[i][1] == queries[i][0]) {
|
||||
res[i] = dp[queries[i][0]];
|
||||
} else {
|
||||
res[i] = dp[queries[i][1]] ^ dp[queries[i][0] - 1];
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
17
src/main/java/com/dota/bit/_1829/Solution.java
Normal file
17
src/main/java/com/dota/bit/_1829/Solution.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package com.dota.bit._1829;
|
||||
|
||||
class Solution {
|
||||
public int[] getMaximumXor(int[] nums, int maximumBit) {
|
||||
var res = new int[nums.length];
|
||||
var k = (2 << maximumBit) - 1;
|
||||
var x = 0;
|
||||
for (int num : nums) {
|
||||
x ^= num;
|
||||
}
|
||||
for (int i = 0; i < nums.length; i++) {
|
||||
res[i] = x ^ k;
|
||||
x ^= nums[nums.length - 1 - i];
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
38
src/main/java/com/dota/bit/_2429/Solution.java
Normal file
38
src/main/java/com/dota/bit/_2429/Solution.java
Normal file
@@ -0,0 +1,38 @@
|
||||
package com.dota.bit._2429;
|
||||
|
||||
class Solution {
|
||||
public static void main(String[] args) {
|
||||
new Solution().minimizeXor(91, 18);
|
||||
}
|
||||
public int minimizeXor(int num1, int num2) {
|
||||
int c2 = Integer.bitCount(num2);
|
||||
int c1 = Integer.bitCount(num1);
|
||||
if (c2 == c1) return num1;
|
||||
int k = Math.abs(c1 - c2);
|
||||
if (c1 > c2) {
|
||||
int x = 0;
|
||||
int cnt = 0;
|
||||
for (int i = 0; i < 32; i++) {
|
||||
if (((1<<i)&num1) != 0) {
|
||||
x |= (1<<i);
|
||||
cnt++;
|
||||
if (cnt == k) break;
|
||||
}
|
||||
}
|
||||
return x ^ num1;
|
||||
}
|
||||
|
||||
int x = 1;
|
||||
int i = 0;
|
||||
int t = 1;
|
||||
while (i < k) {
|
||||
if ((x & num1) == 0) {
|
||||
i++;
|
||||
if (i==k) break;
|
||||
}
|
||||
x <<= 1;
|
||||
t = (t<<1) + 1;
|
||||
}
|
||||
return num1 & t;
|
||||
}
|
||||
}
|
12
src/main/java/com/dota/bit/_2433/Solution.java
Normal file
12
src/main/java/com/dota/bit/_2433/Solution.java
Normal file
@@ -0,0 +1,12 @@
|
||||
package com.dota.bit._2433;
|
||||
|
||||
class Solution {
|
||||
public int[] findArray(int[] pref) {
|
||||
var res = new int[pref.length];
|
||||
res[0] = pref[0];
|
||||
for (int i = 1; i < pref.length; i++) {
|
||||
res[i] = pref[i-1]^pref[i];
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
7
src/main/java/com/dota/bit/_2683/Solution.java
Normal file
7
src/main/java/com/dota/bit/_2683/Solution.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package com.dota.bit._2683;
|
||||
|
||||
class Solution {
|
||||
public boolean doesValidArrayExist(int[] derived) {
|
||||
return false;
|
||||
}
|
||||
}
|
10
src/main/java/com/dota/bit/_2997/Solution.java
Normal file
10
src/main/java/com/dota/bit/_2997/Solution.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.dota.bit._2997;
|
||||
|
||||
class Solution {
|
||||
public int minOperations(int[] nums, int k) {
|
||||
for (int num : nums) {
|
||||
k ^= num;
|
||||
}
|
||||
return Integer.bitCount(k);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user