Skip to content

Commit 767a639

Browse files
committed
feat: add solutions to lc problem: No.1877. Minimize Maximum Pair Sum in Array
1 parent 8dc8180 commit 767a639

File tree

6 files changed

+151
-2
lines changed

6 files changed

+151
-2
lines changed

solution/1800-1899/1877.Minimize Maximum Pair Sum in Array/README.md

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,22 +54,75 @@
5454

5555
<!-- 这里可写通用的实现逻辑 -->
5656

57+
排序 + 贪心。
58+
5759
<!-- tabs:start -->
5860

5961
### **Python3**
6062

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

6365
```python
64-
66+
class Solution:
67+
def minPairSum(self, nums: List[int]) -> int:
68+
nums.sort()
69+
res, n = 0, len(nums)
70+
for i in range(n >> 1):
71+
res = max(res, nums[i] + nums[n - i - 1])
72+
return res
6573
```
6674

6775
### **Java**
6876

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

7179
```java
80+
class Solution {
81+
public int minPairSum(int[] nums) {
82+
Arrays.sort(nums);
83+
int res = 0, n = nums.length;
84+
for (int i = 0; i < (n >> 1); ++i) {
85+
res = Math.max(res, nums[i] + nums[n - i - 1]);
86+
}
87+
return res;
88+
}
89+
}
90+
```
91+
92+
### **C++**
93+
94+
```cpp
95+
class Solution {
96+
public:
97+
int minPairSum(vector<int>& nums) {
98+
sort(nums.begin(), nums.end());
99+
int res = 0, n = nums.size();
100+
for (int i = 0; i < (n >> 1); ++i) {
101+
res = max(res, nums[i] + nums[n - i - 1]);
102+
}
103+
return res;
104+
}
105+
};
106+
```
72107
108+
### **Go**
109+
110+
```go
111+
func minPairSum(nums []int) int {
112+
sort.Ints(nums)
113+
res, n := 0, len(nums)
114+
for i := 0; i < (n >> 1); i++ {
115+
res = max(res, nums[i]+nums[n-i-1])
116+
}
117+
return res
118+
}
119+
120+
func max(a, b int) int {
121+
if a > b {
122+
return a
123+
}
124+
return b
125+
}
73126
```
74127

75128
### **...**

solution/1800-1899/1877.Minimize Maximum Pair Sum in Array/README_EN.md

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,71 @@ The maximum pair sum is max(3+5, 4+4, 6+2) = max(8, 8, 8) = 8.
6262

6363
## Solutions
6464

65+
Sort & Greedy.
66+
6567
<!-- tabs:start -->
6668

6769
### **Python3**
6870

6971
```python
70-
72+
class Solution:
73+
def minPairSum(self, nums: List[int]) -> int:
74+
nums.sort()
75+
res, n = 0, len(nums)
76+
for i in range(n >> 1):
77+
res = max(res, nums[i] + nums[n - i - 1])
78+
return res
7179
```
7280

7381
### **Java**
7482

7583
```java
84+
class Solution {
85+
public int minPairSum(int[] nums) {
86+
Arrays.sort(nums);
87+
int res = 0, n = nums.length;
88+
for (int i = 0; i < (n >> 1); ++i) {
89+
res = Math.max(res, nums[i] + nums[n - i - 1]);
90+
}
91+
return res;
92+
}
93+
}
94+
```
95+
96+
### **C++**
97+
98+
```cpp
99+
class Solution {
100+
public:
101+
int minPairSum(vector<int>& nums) {
102+
sort(nums.begin(), nums.end());
103+
int res = 0, n = nums.size();
104+
for (int i = 0; i < (n >> 1); ++i) {
105+
res = max(res, nums[i] + nums[n - i - 1]);
106+
}
107+
return res;
108+
}
109+
};
110+
```
76111
112+
### **Go**
113+
114+
```go
115+
func minPairSum(nums []int) int {
116+
sort.Ints(nums)
117+
res, n := 0, len(nums)
118+
for i := 0; i < (n >> 1); i++ {
119+
res = max(res, nums[i]+nums[n-i-1])
120+
}
121+
return res
122+
}
123+
124+
func max(a, b int) int {
125+
if a > b {
126+
return a
127+
}
128+
return b
129+
}
77130
```
78131

79132
### **...**
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class Solution {
2+
public:
3+
int minPairSum(vector<int>& nums) {
4+
sort(nums.begin(), nums.end());
5+
int res = 0, n = nums.size();
6+
for (int i = 0; i < (n >> 1); ++i) {
7+
res = max(res, nums[i] + nums[n - i - 1]);
8+
}
9+
return res;
10+
}
11+
};
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
func minPairSum(nums []int) int {
2+
sort.Ints(nums)
3+
res, n := 0, len(nums)
4+
for i := 0; i < (n >> 1); i++ {
5+
res = max(res, nums[i]+nums[n-i-1])
6+
}
7+
return res
8+
}
9+
10+
func max(a, b int) int {
11+
if a > b {
12+
return a
13+
}
14+
return b
15+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution {
2+
public int minPairSum(int[] nums) {
3+
Arrays.sort(nums);
4+
int res = 0, n = nums.length;
5+
for (int i = 0; i < (n >> 1); ++i) {
6+
res = Math.max(res, nums[i] + nums[n - i - 1]);
7+
}
8+
return res;
9+
}
10+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Solution:
2+
def minPairSum(self, nums: List[int]) -> int:
3+
nums.sort()
4+
res, n = 0, len(nums)
5+
for i in range(n >> 1):
6+
res = max(res, nums[i] + nums[n - i - 1])
7+
return res

0 commit comments

Comments
 (0)