File tree Expand file tree Collapse file tree 4 files changed +89
-1
lines changed
0300-0399/0324.Wiggle Sort II
0900-0999/0952.Largest Component Size by Common Factor Expand file tree Collapse file tree 4 files changed +89
-1
lines changed Original file line number Diff line number Diff line change @@ -233,6 +233,37 @@ func wiggleSort(nums []int) {
233
233
}
234
234
```
235
235
236
+ ### ** JavaScript**
237
+
238
+ ``` js
239
+ /**
240
+ * @param {number[]} nums
241
+ * @return {void} Do not return anything, modify nums in-place instead.
242
+ */
243
+ var wiggleSort = function (nums ) {
244
+ let bucket = new Array (5001 ).fill (0 );
245
+ for (const v of nums) {
246
+ bucket[v]++ ;
247
+ }
248
+ const n = nums .length ;
249
+ let j = 5000 ;
250
+ for (let i = 1 ; i < n; i += 2 ) {
251
+ while (bucket[j] == 0 ) {
252
+ -- j;
253
+ }
254
+ nums[i] = j;
255
+ -- bucket[j];
256
+ }
257
+ for (let i = 0 ; i < n; i += 2 ) {
258
+ while (bucket[j] == 0 ) {
259
+ -- j;
260
+ }
261
+ nums[i] = j;
262
+ -- bucket[j];
263
+ }
264
+ };
265
+ ```
266
+
236
267
### ** ...**
237
268
238
269
```
Original file line number Diff line number Diff line change @@ -218,6 +218,37 @@ func wiggleSort(nums []int) {
218
218
}
219
219
```
220
220
221
+ ### ** JavaScript**
222
+
223
+ ``` js
224
+ /**
225
+ * @param {number[]} nums
226
+ * @return {void} Do not return anything, modify nums in-place instead.
227
+ */
228
+ var wiggleSort = function (nums ) {
229
+ let bucket = new Array (5001 ).fill (0 );
230
+ for (const v of nums) {
231
+ bucket[v]++ ;
232
+ }
233
+ const n = nums .length ;
234
+ let j = 5000 ;
235
+ for (let i = 1 ; i < n; i += 2 ) {
236
+ while (bucket[j] == 0 ) {
237
+ -- j;
238
+ }
239
+ nums[i] = j;
240
+ -- bucket[j];
241
+ }
242
+ for (let i = 0 ; i < n; i += 2 ) {
243
+ while (bucket[j] == 0 ) {
244
+ -- j;
245
+ }
246
+ nums[i] = j;
247
+ -- bucket[j];
248
+ }
249
+ };
250
+ ```
251
+
221
252
### ** ...**
222
253
223
254
```
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @return {void } Do not return anything, modify nums in-place instead.
4
+ */
5
+ var wiggleSort = function ( nums ) {
6
+ let bucket = new Array ( 5001 ) . fill ( 0 ) ;
7
+ for ( const v of nums ) {
8
+ bucket [ v ] ++ ;
9
+ }
10
+ const n = nums . length ;
11
+ let j = 5000 ;
12
+ for ( let i = 1 ; i < n ; i += 2 ) {
13
+ while ( bucket [ j ] == 0 ) {
14
+ -- j ;
15
+ }
16
+ nums [ i ] = j ;
17
+ -- bucket [ j ] ;
18
+ }
19
+ for ( let i = 0 ; i < n ; i += 2 ) {
20
+ while ( bucket [ j ] == 0 ) {
21
+ -- j ;
22
+ }
23
+ nums [ i ] = j ;
24
+ -- bucket [ j ] ;
25
+ }
26
+ } ;
Original file line number Diff line number Diff line change 63
63
64
64
** 方法一:数学 + 并查集**
65
65
66
- 利用“试除法”,对 $nums$ 中的每个数 $v$ 分解因数,然后将每个因数 $i$ 与 v 合并,$v / i$ 与 $v$ 合并。此过程用并查集来维护连通分量。
66
+ 利用“试除法”,对 $nums$ 中的每个数 $v$ 分解因数,然后将每个因数 $i$ 与 $v$ 合并,$v / i$ 与 $v$ 合并。此过程用并查集来维护连通分量。
67
67
68
68
最后,遍历 $nums$ 中每个数 $v$,找出所在的连通分量,出现次数最多的连通分量就是所求的答案。
69
69
You can’t perform that action at this time.
0 commit comments