Skip to content

Commit fb00253

Browse files
authored
feat: add ts solution to lc problem: No.2449 (doocs#1383)
1 parent dd07fd0 commit fb00253

File tree

3 files changed

+106
-0
lines changed

3 files changed

+106
-0
lines changed

solution/2400-2499/2449.Minimum Number of Operations to Make Arrays Similar/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,42 @@ func abs(x int) int {
203203
### **TypeScript**
204204

205205
```ts
206+
function makeSimilar(nums: number[], target: number[]): number {
207+
nums.sort((a, b) => a - b);
208+
target.sort((a, b) => a - b);
209+
210+
const a1: number[] = [];
211+
const a2: number[] = [];
212+
const b1: number[] = [];
213+
const b2: number[] = [];
214+
215+
for (const v of nums) {
216+
if (v % 2 === 0) {
217+
a1.push(v);
218+
} else {
219+
a2.push(v);
220+
}
221+
}
222+
223+
for (const v of target) {
224+
if (v % 2 === 0) {
225+
b1.push(v);
226+
} else {
227+
b2.push(v);
228+
}
229+
}
206230

231+
let ans = 0;
232+
for (let i = 0; i < a1.length; ++i) {
233+
ans += Math.abs(a1[i] - b1[i]);
234+
}
235+
236+
for (let i = 0; i < a2.length; ++i) {
237+
ans += Math.abs(a2[i] - b2[i]);
238+
}
239+
240+
return ans / 4;
241+
}
207242
```
208243

209244
### **...**

solution/2400-2499/2449.Minimum Number of Operations to Make Arrays Similar/README_EN.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,42 @@ func abs(x int) int {
181181
### **TypeScript**
182182

183183
```ts
184+
function makeSimilar(nums: number[], target: number[]): number {
185+
nums.sort((a, b) => a - b);
186+
target.sort((a, b) => a - b);
187+
188+
const a1: number[] = [];
189+
const a2: number[] = [];
190+
const b1: number[] = [];
191+
const b2: number[] = [];
192+
193+
for (const v of nums) {
194+
if (v % 2 === 0) {
195+
a1.push(v);
196+
} else {
197+
a2.push(v);
198+
}
199+
}
200+
201+
for (const v of target) {
202+
if (v % 2 === 0) {
203+
b1.push(v);
204+
} else {
205+
b2.push(v);
206+
}
207+
}
184208

209+
let ans = 0;
210+
for (let i = 0; i < a1.length; ++i) {
211+
ans += Math.abs(a1[i] - b1[i]);
212+
}
213+
214+
for (let i = 0; i < a2.length; ++i) {
215+
ans += Math.abs(a2[i] - b2[i]);
216+
}
217+
218+
return ans / 4;
219+
}
185220
```
186221

187222
### **...**
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
function makeSimilar(nums: number[], target: number[]): number {
2+
nums.sort((a, b) => a - b);
3+
target.sort((a, b) => a - b);
4+
5+
const a1: number[] = [];
6+
const a2: number[] = [];
7+
const b1: number[] = [];
8+
const b2: number[] = [];
9+
10+
for (const v of nums) {
11+
if (v % 2 === 0) {
12+
a1.push(v);
13+
} else {
14+
a2.push(v);
15+
}
16+
}
17+
18+
for (const v of target) {
19+
if (v % 2 === 0) {
20+
b1.push(v);
21+
} else {
22+
b2.push(v);
23+
}
24+
}
25+
26+
let ans = 0;
27+
for (let i = 0; i < a1.length; ++i) {
28+
ans += Math.abs(a1[i] - b1[i]);
29+
}
30+
31+
for (let i = 0; i < a2.length; ++i) {
32+
ans += Math.abs(a2[i] - b2[i]);
33+
}
34+
35+
return ans / 4;
36+
}

0 commit comments

Comments
 (0)