From da762c35edd4d5180db179ec2ae43de3227bf592 Mon Sep 17 00:00:00 2001 From: kkunkka Date: Wed, 5 Mar 2025 12:44:36 +0800 Subject: [PATCH] kk --- .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/git_toolbox_prj.xml | 15 +++ src/main/java/com/dota/Main.java | 13 +++ src/main/java/com/dota/Solution.java | 99 ++++++++++--------- .../java/com/dota/arr/_2225/Solution.java | 24 +++++ src/main/java/com/dota/bucket/Solution.java | 41 ++++++++ src/main/java/com/dota/map/Solution.java | 15 ++- src/main/kotlin/A.kt | 3 + 8 files changed, 165 insertions(+), 50 deletions(-) create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/git_toolbox_prj.xml create mode 100644 src/main/java/com/dota/arr/_2225/Solution.java create mode 100644 src/main/java/com/dota/bucket/Solution.java create mode 100644 src/main/kotlin/A.kt diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/git_toolbox_prj.xml b/.idea/git_toolbox_prj.xml new file mode 100644 index 0000000..02b915b --- /dev/null +++ b/.idea/git_toolbox_prj.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/dota/Main.java b/src/main/java/com/dota/Main.java index d04e187..e159df9 100644 --- a/src/main/java/com/dota/Main.java +++ b/src/main/java/com/dota/Main.java @@ -1,5 +1,9 @@ package com.dota; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + // 按两次 Shift 打开“随处搜索”对话框并输入 `show whitespaces`, // 然后按 Enter 键。现在,您可以在代码中看到空格字符。 public class Main { @@ -16,4 +20,13 @@ public class Main { System.out.println("i = " + i); } } +} + +class Solution1 { + public List> permuteUnique(int[] nums) { + Arrays.sort(nums); + List> res = new ArrayList<>(); + + return res; + } } \ No newline at end of file diff --git a/src/main/java/com/dota/Solution.java b/src/main/java/com/dota/Solution.java index e71628c..8b6e5b3 100644 --- a/src/main/java/com/dota/Solution.java +++ b/src/main/java/com/dota/Solution.java @@ -1,62 +1,63 @@ package com.dota; public class Solution { - // 1423. 可获得的最大点数 - public int maxScore(int[] cardPoints, int k) { - int max; - int n = cardPoints.length; - int len = n - k; - int sum = 0; - for (int cardPoint : cardPoints) { - sum += cardPoint; - } + // 1423. 可获得的最大点数 + public int maxScore(int[] cardPoints, int k) { + int max; + int n = cardPoints.length; + int len = n - k; + int sum = 0; + for (int cardPoint : cardPoints) { + sum += cardPoint; + } - int temp = 0; - for (int i = 0; i < len; i++) { - temp += cardPoints[i]; - } + int temp = 0; + for (int i = 0; i < len; i++) { + temp += cardPoints[i]; + } - max = temp; - for (int i = len; i < n; i++) { - temp -= cardPoints[i - len]; - temp += cardPoints[i]; - if (temp < max) { - max = temp; - } - } + max = temp; + for (int i = len; i < n; i++) { + temp -= cardPoints[i - len]; + temp += cardPoints[i]; + if (temp < max) { + max = temp; + } + } - return sum - max; - } + return sum - max; + } - // 2048. 下一个更大的数值平衡数 - public int nextBeautifulNumber(int n) { - while(!ok(++n)) { - } - return n; - } - private boolean ok(int n){ - if (n==0) { - return false; - } + // 2048. 下一个更大的数值平衡数 + public int nextBeautifulNumber(int n) { + while (!ok(++n)) { + } + return n; + } - int[] dp = new int[10]; - while (n!=0) { - int t = n%10; - dp[t]++; - if (dp[t] > t) { - return false; - } + private boolean ok(int n) { + if (n == 0) { + return false; + } - n/=10; - } + int[] dp = new int[10]; + while (n != 0) { + int t = n % 10; + dp[t]++; + if (dp[t] > t) { + return false; + } - for (int i = 1; i < dp.length; i++) { - if (dp[i]!=0 && dp[i]!=i) { - return false; - } - } + n /= 10; + } - return true; - } + for (int i = 1; i < dp.length; i++) { + if (dp[i] != 0 && dp[i] != i) { + return false; + } + } + + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/dota/arr/_2225/Solution.java b/src/main/java/com/dota/arr/_2225/Solution.java new file mode 100644 index 0000000..ac3789c --- /dev/null +++ b/src/main/java/com/dota/arr/_2225/Solution.java @@ -0,0 +1,24 @@ +package com.dota.arr._2225; + +import java.util.ArrayList; +import java.util.List; + +//2225. 找出输掉零场或一场比赛的玩家 +class Solution { + public List> findWinners(int[][] matches) { + List> res = new ArrayList>(); + res.add(new ArrayList<>()); + res.add(new ArrayList<>()); + int[] book = new int[10001]; + for (int[] match : matches) { + book[match[1]]++; + } + for (int i = 0; i < book.length; i++) { + if (book[i] == 1) { + res.get(1).add(i); + } + } + + return null; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/bucket/Solution.java b/src/main/java/com/dota/bucket/Solution.java new file mode 100644 index 0000000..ce1f704 --- /dev/null +++ b/src/main/java/com/dota/bucket/Solution.java @@ -0,0 +1,41 @@ +package com.dota.bucket; + +import java.util.HashMap; +import java.util.Map; + +class Solution { + public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) { + Map map = new HashMap<>(); + for (int i = 0; i < nums.length; i++) { + long id = getId(nums[i], t + 1); + if (map.containsKey(id)) { + return true; + } + + map.put(id, (long) nums[i]); + + if (map.containsKey(id + 1) && Math.abs(map.get(id + 1) - nums[i]) <= t) { + return true; + } + + if (map.containsKey(id - 1) && Math.abs(map.get(id - 1) - nums[i]) <= t) { + return true; + } + + if (i >= k) { + map.remove(getId(nums[i - k], t + 1)); + } + } + + + return false; + } + + public long getId(int x, int w) { + if (x >= 0) { + return x / w; + } + + return (x + 1) / w - 1; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/map/Solution.java b/src/main/java/com/dota/map/Solution.java index e775199..ede5401 100644 --- a/src/main/java/com/dota/map/Solution.java +++ b/src/main/java/com/dota/map/Solution.java @@ -5,6 +5,19 @@ package com.dota.map; */ class Solution { + public int maxDistance(int[] colors) { + int max = 0; + for (int i = 0; i < colors.length; i++) { + for (int j = i+1; j < colors.length; j++) { + if (colors[i] != colors[j]) { + max = Math.max(max, j-i); + } + } + } + + return max; + } + public String repeatLimitedString(String s, int repeatLimit) { var dp = new int[26]; for (char c : s.toCharArray()) { @@ -27,7 +40,7 @@ class Solution { break; } - res.append((char)('a' + j)); + res.append((char) ('a' + j)); dp[j]--; } else { res.append(String.valueOf((char) ('a' + i)).repeat(dp[i])); diff --git a/src/main/kotlin/A.kt b/src/main/kotlin/A.kt new file mode 100644 index 0000000..ee31f37 --- /dev/null +++ b/src/main/kotlin/A.kt @@ -0,0 +1,3 @@ +fun main() { + println("123") +} \ No newline at end of file