Skip to content

Commit 9173033

Browse files
committed
feat: add solutions to lc problem: No.1984
No.1984.Minimum Difference Between Highest and Lowest of K Scores
1 parent 1173e86 commit 9173033

File tree

6 files changed

+111
-39
lines changed

6 files changed

+111
-39
lines changed

solution/1900-1999/1984.Minimum Difference Between Highest and Lowest of K Scores/README.md

+41-13
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949

5050
<!-- 这里可写通用的实现逻辑 -->
5151

52+
排序。
53+
5254
<!-- tabs:start -->
5355

5456
### **Python3**
@@ -58,13 +60,8 @@
5860
```python
5961
class Solution:
6062
def minimumDifference(self, nums: List[int], k: int) -> int:
61-
if k == 1:
62-
return 0
6363
nums.sort()
64-
ans = maxsize
65-
for i in range(len(nums) - k + 1):
66-
ans = min(ans, nums[i + k - 1] - nums[i])
67-
return ans
64+
return min(nums[i + k - 1] - nums[i] for i in range(len(nums) - k + 1))
6865
```
6966

7067
### **Java**
@@ -74,19 +71,50 @@ class Solution:
7471
```java
7572
class Solution {
7673
public int minimumDifference(int[] nums, int k) {
77-
if (k == 1) {
78-
return 0;
79-
}
8074
Arrays.sort(nums);
81-
int min = Integer.MAX_VALUE;
82-
for (int i = 0; i < nums.length - k + 1; i++) {
83-
min = Math.min((nums[i + k - 1] - nums[i]), min);
75+
int ans = 100000;
76+
for (int i = 0; i < nums.length - k + 1; ++i) {
77+
ans = Math.min(ans, nums[i + k - 1] - nums[i]);
8478
}
85-
return min;
79+
return ans;
8680
}
8781
}
8882
```
8983

84+
### **C++**
85+
86+
```cpp
87+
class Solution {
88+
public:
89+
int minimumDifference(vector<int>& nums, int k) {
90+
sort(nums.begin(), nums.end());
91+
int ans = 1e5;
92+
for (int i = 0; i < nums.size() - k + 1; ++i)
93+
ans = min(ans, nums[i + k - 1] - nums[i]);
94+
return ans;
95+
}
96+
};
97+
```
98+
99+
100+
```go
101+
func minimumDifference(nums []int, k int) int {
102+
sort.Ints(nums)
103+
ans := 100000
104+
for i := 0; i < len(nums)-k+1; i++ {
105+
ans = min(ans, nums[i+k-1]-nums[i])
106+
}
107+
return ans
108+
}
109+
110+
func min(a, b int) int {
111+
if a < b {
112+
return a
113+
}
114+
return b
115+
}
116+
```
117+
90118
### **...**
91119

92120
```

solution/1900-1999/1984.Minimum Difference Between Highest and Lowest of K Scores/README_EN.md

+40-13
Original file line numberDiff line numberDiff line change
@@ -52,30 +52,57 @@ The minimum possible difference is 2.</pre>
5252
```python
5353
class Solution:
5454
def minimumDifference(self, nums: List[int], k: int) -> int:
55-
if k == 1:
56-
return 0
5755
nums.sort()
58-
ans = maxsize
59-
for i in range(len(nums) - k + 1):
60-
ans = min(ans, nums[i + k - 1] - nums[i])
61-
return ans
56+
return min(nums[i + k - 1] - nums[i] for i in range(len(nums) - k + 1))
6257
```
6358

6459
### **Java**
6560

6661
```java
6762
class Solution {
6863
public int minimumDifference(int[] nums, int k) {
69-
if (k == 1) {
70-
return 0;
71-
}
7264
Arrays.sort(nums);
73-
int min = Integer.MAX_VALUE;
74-
for (int i = 0; i < nums.length - k + 1; i++) {
75-
min = Math.min((nums[i + k - 1] - nums[i]), min);
65+
int ans = 100000;
66+
for (int i = 0; i < nums.length - k + 1; ++i) {
67+
ans = Math.min(ans, nums[i + k - 1] - nums[i]);
7668
}
77-
return min;
69+
return ans;
70+
}
71+
}
72+
```
73+
74+
### **C++**
75+
76+
```cpp
77+
class Solution {
78+
public:
79+
int minimumDifference(vector<int>& nums, int k) {
80+
sort(nums.begin(), nums.end());
81+
int ans = 1e5;
82+
for (int i = 0; i < nums.size() - k + 1; ++i)
83+
ans = min(ans, nums[i + k - 1] - nums[i]);
84+
return ans;
7885
}
86+
};
87+
```
88+
89+
### **Go**
90+
91+
```go
92+
func minimumDifference(nums []int, k int) int {
93+
sort.Ints(nums)
94+
ans := 100000
95+
for i := 0; i < len(nums)-k+1; i++ {
96+
ans = min(ans, nums[i+k-1]-nums[i])
97+
}
98+
return ans
99+
}
100+
101+
func min(a, b int) int {
102+
if a < b {
103+
return a
104+
}
105+
return b
79106
}
80107
```
81108

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution {
2+
public:
3+
int minimumDifference(vector<int>& nums, int k) {
4+
sort(nums.begin(), nums.end());
5+
int ans = 1e5;
6+
for (int i = 0; i < nums.size() - k + 1; ++i)
7+
ans = min(ans, nums[i + k - 1] - nums[i]);
8+
return ans;
9+
}
10+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
func minimumDifference(nums []int, k int) int {
2+
sort.Ints(nums)
3+
ans := 100000
4+
for i := 0; i < len(nums)-k+1; i++ {
5+
ans = min(ans, nums[i+k-1]-nums[i])
6+
}
7+
return ans
8+
}
9+
10+
func min(a, b int) int {
11+
if a < b {
12+
return a
13+
}
14+
return b
15+
}
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
class Solution {
22
public int minimumDifference(int[] nums, int k) {
3-
if (k == 1) {
4-
return 0;
5-
}
63
Arrays.sort(nums);
7-
int min = Integer.MAX_VALUE;
8-
for (int i = 0; i < nums.length - k + 1; i++) {
9-
min = Math.min((nums[i + k - 1] - nums[i]), min);
4+
int ans = 100000;
5+
for (int i = 0; i < nums.length - k + 1; ++i) {
6+
ans = Math.min(ans, nums[i + k - 1] - nums[i]);
107
}
11-
return min;
8+
return ans;
129
}
1310
}
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
class Solution:
22
def minimumDifference(self, nums: List[int], k: int) -> int:
3-
if k == 1:
4-
return 0
53
nums.sort()
6-
ans = maxsize
7-
for i in range(len(nums) - k + 1):
8-
ans = min(ans, nums[i + k - 1] - nums[i])
9-
return ans
4+
return min(nums[i + k - 1] - nums[i] for i in range(len(nums) - k + 1))

0 commit comments

Comments
 (0)