双指针优化枚举 + 数学公式
查看原帖
双指针优化枚举 + 数学公式
1223313
LuoShu784楼主2024/8/22 22:48

求区间和可以考虑前缀和,但本题特殊之处在于是等差序列, 可以用等差数列求和公式求得区间和,这样可以节约空间, 要求区间至少有两个数, 所以结果在 n / 2 以内, 最后用双指针同向扫描一遍即可。

for (int i = 1, j = 1; i <= n / 2; i++)
	{
		while (j <= n / 2 && sum(i, j) < n)
			j++;
		if (sum(i, j) == n)
			std::cout << i << ' ' << j << endl;
	}
2024/8/22 22:48
加载中...