File tree Expand file tree Collapse file tree 3 files changed +115
-0
lines changed
solution/1200-1299/1224.Maximum Equal Frequency Expand file tree Collapse file tree 3 files changed +115
-0
lines changed Original file line number Diff line number Diff line change @@ -176,6 +176,46 @@ func max(a, b int) int {
176
176
}
177
177
```
178
178
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
+
179
219
### ** ...**
180
220
181
221
```
Original file line number Diff line number Diff line change @@ -150,6 +150,46 @@ func max(a, b int) int {
150
150
}
151
151
```
152
152
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
+
153
193
### ** ...**
154
194
155
195
```
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments