Skip to content

Commit 5e94a97

Browse files
committed
feat: add ts solution to lc problem: No.1224
No.1224.Maximum Equal Frequency
1 parent e4d2641 commit 5e94a97

File tree

3 files changed

+115
-0
lines changed

3 files changed

+115
-0
lines changed

solution/1200-1299/1224.Maximum Equal Frequency/README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,46 @@ func max(a, b int) int {
176176
}
177177
```
178178

179+
### **TypeScript**
180+
181+
```ts
182+
function maxEqualFreq(nums: number[]): number {
183+
const n = nums.length;
184+
const map = new Map();
185+
for (const num of nums) {
186+
map.set(num, (map.get(num) ?? 0) + 1);
187+
}
188+
189+
for (let i = n - 1; i > 0; i--) {
190+
for (const k of map.keys()) {
191+
map.set(k, map.get(k) - 1);
192+
let num = 0;
193+
for (const v of map.values()) {
194+
if (v !== 0) {
195+
num = v;
196+
break;
197+
}
198+
}
199+
let isOk = true;
200+
let sum = 1;
201+
for (const v of map.values()) {
202+
if (v !== 0 && v !== num) {
203+
isOk = false;
204+
break;
205+
}
206+
sum += v;
207+
}
208+
if (isOk) {
209+
return sum;
210+
}
211+
map.set(k, map.get(k) + 1);
212+
}
213+
map.set(nums[i], map.get(nums[i]) - 1);
214+
}
215+
return 1;
216+
}
217+
```
218+
179219
### **...**
180220

181221
```

solution/1200-1299/1224.Maximum Equal Frequency/README_EN.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,46 @@ func max(a, b int) int {
150150
}
151151
```
152152

153+
### **TypeScript**
154+
155+
```ts
156+
function maxEqualFreq(nums: number[]): number {
157+
const n = nums.length;
158+
const map = new Map();
159+
for (const num of nums) {
160+
map.set(num, (map.get(num) ?? 0) + 1);
161+
}
162+
163+
for (let i = n - 1; i > 0; i--) {
164+
for (const k of map.keys()) {
165+
map.set(k, map.get(k) - 1);
166+
let num = 0;
167+
for (const v of map.values()) {
168+
if (v !== 0) {
169+
num = v;
170+
break;
171+
}
172+
}
173+
let isOk = true;
174+
let sum = 1;
175+
for (const v of map.values()) {
176+
if (v !== 0 && v !== num) {
177+
isOk = false;
178+
break;
179+
}
180+
sum += v;
181+
}
182+
if (isOk) {
183+
return sum;
184+
}
185+
map.set(k, map.get(k) + 1);
186+
}
187+
map.set(nums[i], map.get(nums[i]) - 1);
188+
}
189+
return 1;
190+
}
191+
```
192+
153193
### **...**
154194

155195
```
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
function maxEqualFreq(nums: number[]): number {
2+
const n = nums.length;
3+
const map = new Map();
4+
for (const num of nums) {
5+
map.set(num, (map.get(num) ?? 0) + 1);
6+
}
7+
8+
for (let i = n - 1; i > 0; i--) {
9+
for (const k of map.keys()) {
10+
map.set(k, map.get(k) - 1);
11+
let num = 0;
12+
for (const v of map.values()) {
13+
if (v !== 0) {
14+
num = v;
15+
break;
16+
}
17+
}
18+
let isOk = true;
19+
let sum = 1;
20+
for (const v of map.values()) {
21+
if (v !== 0 && v !== num) {
22+
isOk = false;
23+
break;
24+
}
25+
sum += v;
26+
}
27+
if (isOk) {
28+
return sum;
29+
}
30+
map.set(k, map.get(k) + 1);
31+
}
32+
map.set(nums[i], map.get(nums[i]) - 1);
33+
}
34+
return 1;
35+
}

0 commit comments

Comments
 (0)