881. 救生艇
- 题号:881
- 来源:LeetCode
- 难度:中等
- 标签:
贪心双指针排序 - 语言:TypeScript
- 解法:1 个
- 作者:lmliheng
- 最近更新:2026-09-27
TypeScript · O(n log n) 时间 · O(1) 空间 · 更新于 2026-09-27
排序后双指针,重的先上船再尽量塞轻的
typescript
/**
* @difficulty medium
* @tags 贪心,双指针,排序
* @time O(n log n)
* @space O(1)
* @note 排序后双指针,重的先上船再尽量塞轻的
* @881. 救生艇
*/
let people: number[] = [3, 2, 2, 1]
let limit: number = 3
let res: number = 0
people.sort((a, b) => a - b) // 1 2 2 3
let n: number = people.length
let l: number = 0 // 轻
let r: number = n - 1
while (l < r) {
if (limit - people[l] >= people[r]) {
l++
}
r--
res++
}
if (l === r) { res++ }
console.log(res)
export {};在 GitHub 上查看题目所在目录:lmliheng/algorithm