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

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;
	}
}
相关推荐
hqiangtai2 小时前
Android 高级专家技术能力图谱
android·职场和发展
西伯利亚狼_J20203 小时前
资料260107J-Go
职场和发展
源代码•宸3 小时前
Leetcode—1123. 最深叶节点的最近公共祖先【中等】
经验分享·算法·leetcode·职场和发展·golang·dfs
释怀°Believe4 小时前
Daily算法刷题【面试经典150题-7️⃣位运算/数学/】
算法·面试·职场和发展
CCPC不拿奖不改名5 小时前
网络与API:HTTP基础+面试习题
网络·python·网络协议·学习·http·面试·职场和发展
2501_941144036 小时前
在不确定性中构建确定性:一次互联网技术实践的随笔记录
决策树·散列表·启发式算法
LYFlied6 小时前
【每日算法】LeetCode 207. 课程表
算法·leetcode·职场和发展
码农丁丁6 小时前
谈谈面试的本质
面试·职场和发展·技术管理·ai时代的技术管理
Swift社区6 小时前
LeetCode 470 用 Rand7() 实现 Rand10()
算法·leetcode·职场和发展
千金裘换酒14 小时前
LeetCode 移动零元素 快慢指针
算法·leetcode·职场和发展