Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 46a9d19

Browse files
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‎

Lines changed: 24 additions & 1 deletion
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‎

Lines changed: 24 additions & 1 deletion
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
### **...**
Lines changed: 24 additions & 0 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /