蓝桥杯备考-----》前缀和+哈希表之连续自然数和

M是2e6级别的,我们如果N平方必然是过不了滴

当然,我们枚举的时候并不需要枚举那么多,我们只需要枚举M的一半儿就行了

我们用前缀和,提前把0下标标记为0 ,如果f[i]刚好是sum的话,就输出1到i

如果f[i]不是sum的话,我们用mp寻找一下有没有 f[i]-sum 的数,如果有的话,我们输出mp[f[i]-sum]+1到i

好的,我们来实现一下代码

cpp 复制代码
#include <iostream>
#include <unordered_map>
using namespace std;
typedef long long ll;
unordered_map <ll,int> mp;
ll sum;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	ll m;cin >> m;
	mp[0]=0;
	for(int i = 1;i<=m/2+1;i++)
	{
		sum+=i;
		if(mp.count(sum-m))
		{
			cout << mp[sum-m] +1 << " " <<i << endl;
		}
		mp[sum]=i;
	}
}
相关推荐
Kaltistss26 分钟前
98.验证二叉搜索树
算法·leetcode·职场和发展
牛客企业服务3 小时前
2025年AI面试推荐榜单,数字化招聘转型优选
人工智能·python·算法·面试·职场和发展·金融·求职招聘
爱coding的橙子7 小时前
每日算法刷题Day42 7.5:leetcode前缀和3道题,用时2h
算法·leetcode·职场和发展
YuTaoShao10 小时前
【LeetCode 热题 100】56. 合并区间——排序+遍历
java·算法·leetcode·职场和发展
desssq21 小时前
力扣:70. 爬楼梯
算法·leetcode·职场和发展
June bug2 天前
【软考中级·软件评测师】下午题·面向对象测试之架构考点全析:分层、分布式、微内核与事件驱动
经验分享·分布式·职场和发展·架构·学习方法·测试·软考
薰衣草23332 天前
一天两道力扣(1)
算法·leetcode·职场和发展
爱coding的橙子2 天前
每日算法刷题Day41 6.28:leetcode前缀和2道题,用时1h20min(要加快)
算法·leetcode·职场和发展
天真小巫3 天前
2025.6.27总结
职场和发展
Memories off12 天前
实习/秋招记录:软件开发转AI或安全
职场和发展