From 1b5422af0fce2a5ee44111e77880e70fddabe572 Mon Sep 17 00:00:00 2001 From: kkunkka Date: Tue, 24 Jun 2025 11:02:05 +0800 Subject: [PATCH] kk --- .../java/com/dota/bit/_1310/Solution.java | 23 +++++++++++ .../java/com/dota/bit/_1829/Solution.java | 17 +++++++++ .../java/com/dota/bit/_2429/Solution.java | 38 +++++++++++++++++++ .../java/com/dota/bit/_2433/Solution.java | 12 ++++++ .../java/com/dota/bit/_2683/Solution.java | 7 ++++ .../java/com/dota/bit/_2997/Solution.java | 10 +++++ 6 files changed, 107 insertions(+) create mode 100644 src/main/java/com/dota/bit/_1310/Solution.java create mode 100644 src/main/java/com/dota/bit/_1829/Solution.java create mode 100644 src/main/java/com/dota/bit/_2429/Solution.java create mode 100644 src/main/java/com/dota/bit/_2433/Solution.java create mode 100644 src/main/java/com/dota/bit/_2683/Solution.java create mode 100644 src/main/java/com/dota/bit/_2997/Solution.java diff --git a/src/main/java/com/dota/bit/_1310/Solution.java b/src/main/java/com/dota/bit/_1310/Solution.java new file mode 100644 index 0000000..8c2b703 --- /dev/null +++ b/src/main/java/com/dota/bit/_1310/Solution.java @@ -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; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/bit/_1829/Solution.java b/src/main/java/com/dota/bit/_1829/Solution.java new file mode 100644 index 0000000..ba4d0a4 --- /dev/null +++ b/src/main/java/com/dota/bit/_1829/Solution.java @@ -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; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/bit/_2429/Solution.java b/src/main/java/com/dota/bit/_2429/Solution.java new file mode 100644 index 0000000..2683f45 --- /dev/null +++ b/src/main/java/com/dota/bit/_2429/Solution.java @@ -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<