社区讨论
萌新求助双指针模板
学术版参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lo8hnke0
- 此快照首次捕获于
- 2023/10/27 18:46 2 年前
- 此快照最后确认于
- 2023/10/27 18:46 2 年前
题意描述:
给定两个升序排序的有序数组 A 和 B,以及一个目标值 x。请你求出满足 A[i]+B[j]=x 的数对 (i,j)。数据保证有唯一解。
(本题是AcWing上P800,可是要报基础课才能看题面)
蒟蒻的循环是这么写的:
CPPfor(int i = 1, j = 1; i <= n; ++ i) {
while(a[i] + b[j] < x && j <= m) j ++;
while(a[i] + b[j] > x && j >= 1) j --;
if(j >= 1 && a[i] + b[j] == x) {
printf("%d %d", i - 1, j - 1);
}
}
而正解是:
CPPfor(int i = 1, j = m; i <= n; ++ i) {
while(a[i] + b[j] > x && j >= 1) j --;
if(a[i] + b[j] == x) {
printf("%d %d", i - 1, j - 1);
break;
}
}
求助,真的搞不清区别/kk
回复
共 5 条回复,欢迎继续交流。
正在加载回复...