提供一个go语言的双指针解法
查看原帖
提供一个go语言的双指针解法
773707
unicorn12138楼主2024/3/4 14:21

sort完以后双指针cnt的部分

l, r := 0, 1
	for r < n {
		if q[r]-q[l] > c {
			l++
			if l == r {
				r++
			}
		} else if q[r]-q[l] < c {
			r++
		} else {
			var cnt int
			for r < n && q[r]-q[l] == c {
				cnt++
				r++
			}
			res += cnt
			for l < r && q[l] == q[l+1] {
				l++
				res += cnt
			}

		}
	}

2024/3/4 14:21
加载中...