Skip to content

Commit 46a9d19

Browse files
committed
feat: add typescript solution to lc problem: No.2170
No.2170.Minimum Operations to Make the Array Alternating
1 parent cd54db8 commit 46a9d19

File tree

3 files changed

+72
-2
lines changed

3 files changed

+72
-2
lines changed

solution/2100-2199/2170.Minimum Operations to Make the Array Alternating/README.md

+24-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,30 @@
7676
### **TypeScript**
7777

7878
```ts
79-
79+
function minimumOperations(nums: number[]): number {
80+
const n = nums.length, m = 10 ** 5;
81+
let odd = new Array(m).fill(0);
82+
let even = new Array(m).fill(0);
83+
for (let i = 0; i < n; i++) {
84+
let cur = nums[i];
85+
if (i & 1) {
86+
odd[cur] = (odd[cur] || 0) + 1;
87+
} else {
88+
even[cur] = (even[cur] || 0) + 1;
89+
}
90+
}
91+
let i1 = odd.indexOf(Math.max(...odd));
92+
let i2 = even.indexOf(Math.max(...even));
93+
if (i1 != i2) {
94+
return n - odd[i1] - even[i2];
95+
} else {
96+
let l1 = odd[i1], l2 = even[i2];
97+
odd[i1] = 0, even[i2] = 0;
98+
let j1 = odd.indexOf(Math.max(...odd));
99+
let j2 = even.indexOf(Math.max(...even));
100+
return n - Math.max(l1 + even[j2], l2 + odd[j1]);
101+
}
102+
};
80103
```
81104

82105
### **...**

solution/2100-2199/2170.Minimum Operations to Make the Array Alternating/README_EN.md

+24-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,30 @@ Note that the array cannot be converted to [<u><strong>2</strong></u>,2,2,2,2] b
6767
### **TypeScript**
6868

6969
```ts
70-
70+
function minimumOperations(nums: number[]): number {
71+
const n = nums.length, m = 10 ** 5;
72+
let odd = new Array(m).fill(0);
73+
let even = new Array(m).fill(0);
74+
for (let i = 0; i < n; i++) {
75+
let cur = nums[i];
76+
if (i & 1) {
77+
odd[cur] = (odd[cur] || 0) + 1;
78+
} else {
79+
even[cur] = (even[cur] || 0) + 1;
80+
}
81+
}
82+
let i1 = odd.indexOf(Math.max(...odd));
83+
let i2 = even.indexOf(Math.max(...even));
84+
if (i1 != i2) {
85+
return n - odd[i1] - even[i2];
86+
} else {
87+
let l1 = odd[i1], l2 = even[i2];
88+
odd[i1] = 0, even[i2] = 0;
89+
let j1 = odd.indexOf(Math.max(...odd));
90+
let j2 = even.indexOf(Math.max(...even));
91+
return n - Math.max(l1 + even[j2], l2 + odd[j1]);
92+
}
93+
};
7194
```
7295

7396
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
function minimumOperations(nums: number[]): number {
2+
const n = nums.length, m = 10 ** 5;
3+
let odd = new Array(m).fill(0);
4+
let even = new Array(m).fill(0);
5+
for (let i = 0; i < n; i++) {
6+
let cur = nums[i];
7+
if (i & 1) {
8+
odd[cur] = (odd[cur] || 0) + 1;
9+
} else {
10+
even[cur] = (even[cur] || 0) + 1;
11+
}
12+
}
13+
let i1 = odd.indexOf(Math.max(...odd));
14+
let i2 = even.indexOf(Math.max(...even));
15+
if (i1 != i2) {
16+
return n - odd[i1] - even[i2];
17+
} else {
18+
let l1 = odd[i1], l2 = even[i2];
19+
odd[i1] = 0, even[i2] = 0;
20+
let j1 = odd.indexOf(Math.max(...odd));
21+
let j2 = even.indexOf(Math.max(...even));
22+
return n - Math.max(l1 + even[j2], l2 + odd[j1]);
23+
}
24+
};

0 commit comments

Comments
 (0)