From 9996e2871eb6dbc2b8e18967b2864461bcc6436a Mon Sep 17 00:00:00 2001 From: kkunkka Date: Mon, 7 Jul 2025 16:00:15 +0800 Subject: [PATCH] kk --- .../java/com/dota/bit/_2857/Solution.java | 22 ++++++++++++ .../java/com/dota/bit/_3153/Solution.java | 36 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 src/main/java/com/dota/bit/_2857/Solution.java create mode 100644 src/main/java/com/dota/bit/_3153/Solution.java diff --git a/src/main/java/com/dota/bit/_2857/Solution.java b/src/main/java/com/dota/bit/_2857/Solution.java new file mode 100644 index 0000000..dcdf7b7 --- /dev/null +++ b/src/main/java/com/dota/bit/_2857/Solution.java @@ -0,0 +1,22 @@ +package com.dota.bit._2857; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +class Solution { + public int countPairs(List> coordinates, int k) { + int res = 0; + var map = new HashMap(); + for (List coordinate : coordinates) { + var x = coordinate.get(0); + var y = coordinate.get(1); + + for (int i = 0; i <= k; i++) { + res += map.getOrDefault((x ^ i) * 2000000L + (y ^ (k - i)), 0); + } + map.merge(x * 2000000L + y, 1, Integer::sum); + } + return res; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/bit/_3153/Solution.java b/src/main/java/com/dota/bit/_3153/Solution.java new file mode 100644 index 0000000..e08a976 --- /dev/null +++ b/src/main/java/com/dota/bit/_3153/Solution.java @@ -0,0 +1,36 @@ +package com.dota.bit._3153; + +import java.util.HashMap; +import java.util.Map; + +class Solution { + public static void main(String[] args) { + new Solution().sumDigitDifferences(new int[]{13,23,12}); + } + public long sumDigitDifferences(int[] nums) { + long res = 0; + int t = nums[0]; + int len = 0; + while (t > 0) { + len++; + t /= 10; + } + + Map[] dp = new Map[len]; + for (int i = 0; i < dp.length; i++) { + dp[i] = new HashMap<>(); + } + + int sum=0; + for (int num : nums) { + for (int i = 0; i < len; i++) { + t = num % 10; + res = res + (sum - dp[i].getOrDefault(t, 0)); + dp[i].put(t, 1 + dp[i].getOrDefault(t, 0)); + num /= 10; + } + sum++; + } + return res; + } +} \ No newline at end of file