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