Skip to content

Commit 696528e

Browse files
committed
feat: add solutions to leetcode problem: No.0561
1 parent 50bf687 commit 696528e

File tree

5 files changed

+78
-40
lines changed

5 files changed

+78
-40
lines changed

solution/0500-0599/0561.Array Partition I/README.md

+31-1
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,52 @@
2727

2828
<!-- 这里可写通用的实现逻辑 -->
2929

30+
先排序,然后求相邻的两个元素的最小值,得到的总和即为结果。
31+
3032
<!-- tabs:start -->
3133

3234
### **Python3**
3335

3436
<!-- 这里可写当前语言的特殊实现逻辑 -->
3537

3638
```python
37-
39+
class Solution:
40+
def arrayPairSum(self, nums: List[int]) -> int:
41+
return sum(sorted(nums)[::2])
3842
```
3943

4044
### **Java**
4145

4246
<!-- 这里可写当前语言的特殊实现逻辑 -->
4347

4448
```java
49+
class Solution {
50+
public int arrayPairSum(int[] nums) {
51+
Arrays.sort(nums);
52+
int res = 0;
53+
for (int i = 0, n = nums.length; i < n; i += 2) {
54+
res += nums[i];
55+
}
56+
return res;
57+
}
58+
}
59+
```
4560

61+
### **JavaScript**
62+
63+
```js
64+
/**
65+
* @param {number[]} nums
66+
* @return {number}
67+
*/
68+
var arrayPairSum = function (nums) {
69+
nums.sort((a, b) => a - b);
70+
let res = 0;
71+
for (let i = 0, n = nums.length; i < n; i += 2) {
72+
res += nums[i];
73+
}
74+
return res;
75+
};
4676
```
4777

4878
### **...**

solution/0500-0599/0561.Array Partition I/README_EN.md

+29-1
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,41 @@ Given an array of <b>2n</b> integers, your task is to group these integers into
4545
### **Python3**
4646

4747
```python
48-
48+
class Solution:
49+
def arrayPairSum(self, nums: List[int]) -> int:
50+
return sum(sorted(nums)[::2])
4951
```
5052

5153
### **Java**
5254

5355
```java
56+
class Solution {
57+
public int arrayPairSum(int[] nums) {
58+
Arrays.sort(nums);
59+
int res = 0;
60+
for (int i = 0, n = nums.length; i < n; i += 2) {
61+
res += nums[i];
62+
}
63+
return res;
64+
}
65+
}
66+
```
5467

68+
### **JavaScript**
69+
70+
```js
71+
/**
72+
* @param {number[]} nums
73+
* @return {number}
74+
*/
75+
var arrayPairSum = function (nums) {
76+
nums.sort((a, b) => a - b);
77+
let res = 0;
78+
for (let i = 0, n = nums.length; i < n; i += 2) {
79+
res += nums[i];
80+
}
81+
return res;
82+
};
5583
```
5684

5785
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution {
2+
public int arrayPairSum(int[] nums) {
3+
Arrays.sort(nums);
4+
int res = 0;
5+
for (int i = 0, n = nums.length; i < n; i += 2) {
6+
res += nums[i];
7+
}
8+
return res;
9+
}
10+
}

solution/0500-0599/0561.Array Partition I/Solution.js

+5-38
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,11 @@
22
* @param {number[]} nums
33
* @return {number}
44
*/
5-
6-
/**
7-
* Author: Mcnwork2018
8-
*/
9-
105
var arrayPairSum = function (nums) {
11-
let result = merge_sort(nums);
12-
let sum = 0;
13-
for (let i = 0; i < result.length; i += 2) {
14-
sum += result[i];
6+
nums.sort((a, b) => a - b);
7+
let res = 0;
8+
for (let i = 0, n = nums.length; i < n; i += 2) {
9+
res += nums[i];
1510
}
16-
return sum;
11+
return res;
1712
};
18-
function merge_sort(A) {
19-
let len = A.length;
20-
if (len === 1) return A;
21-
let mid = ~~(len / 2);
22-
let leftArray = A.slice(0, mid);
23-
let rightArray = A.slice(mid, len);
24-
return merge(merge_sort(leftArray), merge_sort(rightArray));
25-
}
26-
function merge(left, right) {
27-
let i = 0,
28-
j = 0,
29-
k = 0,
30-
tmp = [];
31-
while (i < left.length && j < right.length) {
32-
if (left[i] <= right[j]) {
33-
tmp[k++] = left[i++];
34-
} else {
35-
tmp[k++] = right[j++];
36-
}
37-
}
38-
while (i < left.length) {
39-
tmp[k++] = left[i++];
40-
}
41-
while (j < right.length) {
42-
tmp[k++] = right[j++];
43-
}
44-
return tmp;
45-
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class Solution:
2+
def arrayPairSum(self, nums: List[int]) -> int:
3+
return sum(sorted(nums)[::2])

0 commit comments

Comments
 (0)