2824. 统计和小于目标的下标对数目

2824. 统计和小于目标的下标对数目

解法一: 枚举

go
1
2
3
4
5
6
7
8
9
10
11
12
func countPairs(nums []int, target int) int {
ans := 0
length := len(nums)
for i := 0; i < length; i++ {
for j := i + 1; j < length; j++ {
if nums[i] + nums[j] < target {
ans++
}
}
}
return ans
}

解法二: 排序, 二分

go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
func countPairs(nums []int, target int) int {
sort.Ints(nums)
ans := 0
length := len(nums)
for i := 0; i < length; i++ {
left := i
right := length - 1
curTarget := target - nums[i]
for left < right {
mid := ((right - left + 1) >> 1) + left
if nums[mid] >= curTarget {
right = mid - 1
} else {
left = mid
}
}
ans += left - i
}
return ans
}
作者

wuhunyu

发布于

2023-11-24

更新于

2023-12-01

许可协议