Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 4 additions & 24 deletions .commitmsg
Original file line number Diff line number Diff line change
@@ -1,25 +1,5 @@
今天:
1200: AC.cpp+py+go(#1348) + word: (en)

1984: AC.cpp+py+go+java+rust (#1346) + word: en(jp)

cpp - AC,100.00%,33.57%
WA.py
py - AC,84.93%,7.24%
WA.go
go - AC,28.13%,20.31%
java - AC,83.61%,5.02%
rust - AC,100.00%,76.47%

---

昨天:

1877: AC.cpp+java+rust+py+go (#1344)

cpp - AC,74.40%,21.43%
py - AC,9.40%,17.09%
py - AC,63.25%,7.69%,len()/2
py - AC,51.28%,11.97% - [~i]
go - AC,44.44%,44.44%
rust - AC,50.00%,50.00%
java - AC,20.00%,10.00%
cpp - AC,78.75%,27.52%
py - AC,79.19%,24.53%
go - AC,16.13%,61.29%
28 changes: 28 additions & 0 deletions Codes/1200-minimum-absolute-difference_20260126.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*
* @Author: LetMeFly
* @Date: 2026-01-26 23:38:09
* @LastEditors: LetMeFly.xyz
* @LastEditTime: 2026-01-26 23:39:44
*/
#if defined(_WIN32) || defined(__APPLE__)
#include "_[1,2]toVector.h"
#endif

class Solution {
public:
vector<vector<int>> minimumAbsDifference(vector<int>& arr) {
sort(arr.begin(), arr.end());
vector<vector<int>> ans;
int mini = 10000001;
Comment thread
LetMeFly666 marked this conversation as resolved.
for (int i = 1; i < arr.size(); i++) {
int diff = arr[i] - arr[i - 1];
if (diff == mini) {
ans.push_back({arr[i - 1], arr[i]});
} else if (diff < mini) {
mini = diff;
ans = {{arr[i - 1], arr[i]}};
}
}
return ans;
}
};
24 changes: 24 additions & 0 deletions Codes/1200-minimum-absolute-difference_20260126.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/*
* @Author: LetMeFly
* @Date: 2026-01-26 23:38:09
* @LastEditors: LetMeFly.xyz
* @LastEditTime: 2026-01-26 23:48:45
*/
package main

import "sort"

func minimumAbsDifference(arr []int) (ans [][]int) {
sort.Ints(arr)
Copy link

Copilot AI Jan 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file has non-gofmt indentation (e.g., sort.Ints(arr) is space-indented while the rest uses tabs). Running gofmt will keep formatting consistent across Go solutions.

Suggested change
sort.Ints(arr)
sort.Ints(arr)

Copilot uses AI. Check for mistakes.
mini := 10000000
for i := 1; i < len(arr); i++ {
diff := arr[i] - arr[i - 1]
if diff < mini {
mini = diff
ans = [][]int{{arr[i - 1], arr[i]}}
} else if diff == mini {
ans = append(ans, []int{arr[i - 1], arr[i]})
Comment thread
LetMeFly666 marked this conversation as resolved.
}
}
return
}
21 changes: 21 additions & 0 deletions Codes/1200-minimum-absolute-difference_20260126.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
'''
Author: LetMeFly
Date: 2026-01-26 23:38:09
LastEditors: LetMeFly.xyz
LastEditTime: 2026-01-26 23:45:24
'''
from typing import List

class Solution:
def minimumAbsDifference(self, arr: List[int]) -> List[List[int]]:
arr.sort()
ans = []
mini = 10000000
Comment thread
LetMeFly666 marked this conversation as resolved.
for i in range(1, len(arr)):
diff = arr[i] - arr[i - 1]
if diff < mini:
ans = [[arr[i - 1], arr[i]]]
mini = diff
elif diff == mini:
ans.append([arr[i - 1], arr[i]])
return ans
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@
* @Author: LetMeFly
* @Date: 2026-01-25 10:32:52
* @LastEditors: LetMeFly.xyz
* @LastEditTime: 2026-01-25 10:39:42
* @LastEditTime: 2026-01-25 10:39:56
*/
package main

import "sort"

// THIS CANNOT BE ACCEPTED
func minimumDifference(nums []int, k int) (ans int) {
func minimumDifference(nums []int, k int) int {
ans := 100000
sort.Ints(nums)
Comment thread
LetMeFly666 marked this conversation as resolved.
for i := 0; i < len(nums) - k + 1; i++ {
ans = min(ans, nums[i + k - 1] - nums[i])
}
Comment thread
LetMeFly666 marked this conversation as resolved.
return
return ans
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@
Author: LetMeFly
Date: 2026-01-25 10:32:52
LastEditors: LetMeFly.xyz
LastEditTime: 2026-01-25 10:35:25
LastEditTime: 2026-01-25 10:37:04
'''
from typing import List

# THIS CANNOT BE ACCEPTED
class Solution:
def minimumDifference(self, nums: List[int], k: int) -> int:
nums.sort()
return max(nums[i + k - 1] - nums[i] for i in range(len(nums) - k + 1))
return min(nums[i + k - 1] - nums[i] for i in range(len(nums) - k + 1))

This file was deleted.

This file was deleted.

89 changes: 88 additions & 1 deletion Solutions/LeetCode 1200.最小绝对差.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ categories: [题解, LeetCode]



## 方法一:排序
## 方法一:排序+两次遍历

这道题的数据范围是$10^5$,因此无法$O(n^2)$暴力

Expand Down Expand Up @@ -81,5 +81,92 @@ public:
};
```

## 方法二:排序+一次遍历

一次遍历直接在ans中存储当前所有差值为当前最小值的pair,如果有更小的pair-diff则之前存的都扔掉。

+ 时间复杂度$O(n\log n)$,其中 $n$ 是数组 $\textit{arr}$ 的长度
+ 空间复杂度$O(n)$,最坏情况可能存接近$n$对非答案

### AC代码

#### C++

```cpp
/*
* @LastEditTime: 2026-01-26 23:39:44
*/
class Solution {
public:
vector<vector<int>> minimumAbsDifference(vector<int>& arr) {
sort(arr.begin(), arr.end());
vector<vector<int>> ans;
int mini = 10000001;
for (int i = 1; i < arr.size(); i++) {
int diff = arr[i] - arr[i - 1];
if (diff == mini) {
ans.push_back({arr[i - 1], arr[i]});
} else if (diff < mini) {
mini = diff;
ans = {{arr[i - 1], arr[i]}};
}
}
return ans;
}
};
```

#### Py

```python
'''
LastEditTime: 2026-01-26 23:45:24
'''
from typing import List

class Solution:
def minimumAbsDifference(self, arr: List[int]) -> List[List[int]]:
arr.sort()
ans = []
mini = 10000000
for i in range(1, len(arr)):
diff = arr[i] - arr[i - 1]
if diff < mini:
ans = [[arr[i - 1], arr[i]]]
mini = diff
elif diff == mini:
ans.append([arr[i - 1], arr[i]])
return ans
```

#### Go

```go
/*
* @Author: LetMeFly
* @Date: 2026-01-26 23:38:09
* @LastEditors: LetMeFly.xyz
* @LastEditTime: 2026-01-26 23:48:45
*/
package main

import "sort"

func minimumAbsDifference(arr []int) (ans [][]int) {
sort.Ints(arr)
mini := 10000000
for i := 1; i < len(arr); i++ {
diff := arr[i] - arr[i - 1]
if diff < mini {
mini = diff
ans = [][]int{{arr[i - 1], arr[i]}}
} else if diff == mini {
ans = append(ans, []int{arr[i - 1], arr[i]})
}
}
return
}
```

> 同步发文于CSDN,原创不易,转载请附上[原文链接](https://blog.letmefly.xyz/2022/07/04/LeetCode%201200.%E6%9C%80%E5%B0%8F%E7%BB%9D%E5%AF%B9%E5%B7%AE/)哦~
> Tisfy:[https://letmefly.blog.csdn.net/article/details/125609898](https://letmefly.blog.csdn.net/article/details/125609898)
5 changes: 3 additions & 2 deletions todo
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# rm Codes/1984-minimum-difference-between-highest-and-lowest-of-k-scores_20260125.py
# rm Codes/1984-minimum-difference-between-highest-and-lowest-of-k-scores_20260125.go
# record best-effort

# Solutions\LeetCode 1200.最小绝对差.md tail
Comment thread
LetMeFly666 marked this conversation as resolved.

# html 电脑屏幕取色器
# https://web.letmefly.xyz/%E8%AE%A1%E7%AE%97%E6%9C%BACode/HTML%E7%94%B5%E8%84%91%E5%B1%8F%E5%B9%95%E5%8F%96%E8%89%B2%E5%99%A8/
Expand Down
Loading