Skip to content

Commit a80cec0

Browse files
authored
feat: add java solution to lc problem: No.1296.Divide Array in Sets of K Consecutive Numbers (#553)
1 parent b133d00 commit a80cec0

File tree

3 files changed

+81
-2
lines changed

3 files changed

+81
-2
lines changed

Diff for: solution/1200-1299/1296.Divide Array in Sets of K Consecutive Numbers/README.md

+27-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,33 @@
7676
<!-- 这里可写当前语言的特殊实现逻辑 -->
7777

7878
```java
79-
79+
class Solution {
80+
public boolean isPossibleDivide(int[] nums, int k) {
81+
if (nums.length % k != 0) {
82+
return false;
83+
}
84+
TreeMap<Integer, Integer> mp = new TreeMap<>();
85+
for (int item : nums) {
86+
mp.put(item, mp.getOrDefault(item, 0) + 1);
87+
}
88+
89+
while (mp.size() > 0) {
90+
int start = mp.firstKey();
91+
for (int i = start; i < start + k; i++) {
92+
if (!mp.containsKey(i)) {
93+
return false;
94+
}
95+
int time = mp.get(i);
96+
if (time == 1) {
97+
mp.remove(i);
98+
} else {
99+
mp.replace(i, time - 1);
100+
}
101+
}
102+
}
103+
return true;
104+
}
105+
}
80106
```
81107

82108
### **...**

Diff for: solution/1200-1299/1296.Divide Array in Sets of K Consecutive Numbers/README_EN.md

+27-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,33 @@ Return <code>True</code> if it is possible.<strong> </strong>Otherwise, return <
6363
### **Java**
6464

6565
```java
66-
66+
class Solution {
67+
public boolean isPossibleDivide(int[] nums, int k) {
68+
if (nums.length % k != 0) {
69+
return false;
70+
}
71+
TreeMap<Integer, Integer> mp = new TreeMap<>();
72+
for (int item : nums) {
73+
mp.put(item, mp.getOrDefault(item, 0) + 1);
74+
}
75+
76+
while (mp.size() > 0) {
77+
int start = mp.firstKey();
78+
for (int i = start; i < start + k; i++) {
79+
if (!mp.containsKey(i)) {
80+
return false;
81+
}
82+
int time = mp.get(i);
83+
if (time == 1) {
84+
mp.remove(i);
85+
} else {
86+
mp.replace(i, time - 1);
87+
}
88+
}
89+
}
90+
return true;
91+
}
92+
}
6793
```
6894

6995
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class Solution {
2+
public boolean isPossibleDivide(int[] nums, int k) {
3+
if (nums.length % k != 0) {
4+
return false;
5+
}
6+
TreeMap<Integer, Integer> mp = new TreeMap<>();
7+
for (int item : nums) {
8+
mp.put(item, mp.getOrDefault(item, 0) + 1);
9+
}
10+
11+
while (mp.size() > 0) {
12+
int start = mp.firstKey();
13+
for (int i = start; i < start + k; i++) {
14+
if (!mp.containsKey(i)) {
15+
return false;
16+
}
17+
int time = mp.get(i);
18+
if (time == 1) {
19+
mp.remove(i);
20+
} else {
21+
mp.replace(i, time - 1);
22+
}
23+
}
24+
}
25+
return true;
26+
}
27+
}

0 commit comments

Comments
 (0)