数组元素的目标和(蓝桥杯每日一题)
数组元素的目标和(蓝桥杯每日一题)
数组元素的目标和(蓝桥杯每日一题)给定两个升序排序的有序数组 A和 B,以及一个目标值 x。数组下标从 0 开始。请你求出满足 A[i]+B[j]=x 的数对 (i,j)。数据保证有唯一解。输入格式
第一行包含三个整数 n,m,x,分别表示 A 的长度,B 的长度以及目标值 x。第二行包含 n 个整数,表示数组 A。第三行包含 m 个整数,表示数组 B。输出格
数组元素的目标和(蓝桥杯每日一题)
给定两个升序排序的有序数组 A和 B,以及一个目标值 x。
数组下标从 0 开始。
请你求出满足 A[i]+B[j]=x 的数对 (i,j)。
数据保证有唯一解。
输入格式 第一行包含三个整数 n,m,x,分别表示 A 的长度,B 的长度以及目标值 x。
第二行包含 n 个整数,表示数组 A。
第三行包含 m 个整数,表示数组 B。
输出格式 共一行,包含两个整数 i 和 j。
数据范围 数组长度不超过 105。
同一数组内元素各不相同。
1≤数组元素≤109 输入样例: 4 5 6 1 2 4 7 4 6 8 9 输出样例: 1 1
算法思路
这是一个双指针算法,首先是设置两个指针,一个i,一个j,然后i从前往后走,然后j从后往前走,在走的过程中设置一个循环,这个循环中需要判断你的是,j是否走出去了,越界了,然后a[i]+b[j]是否大于x,如果没有的话,继续缩小范围,最后,写一个if判断一下,当前的a[i] + b[j]是否等于x,如果等于了,这个时候就需要打印这次的这个结果。
C++
代码语言:javascript代码运行次数:0运行复制#include<bits/stdc++.h>
using namespace std;
ct int = 100010;
int n, m;
int x;
int a[], b[];
int main()
{
cin >> n >> m >> x;
for (int i = 0; i < n; ++ i) cin >> a[i];
for (int j = 0; j < m; ++ j) cin >> b[j];
for (int i = 0, j = m - 1; i < n; ++ i) // 双指针算法 设置两个指针i,j
// i从前往后走 j从后往前走
{
while (j >= 0 && a[i] + b[j] > x) j --; // 首先需要判断一下是否 i,j走出界
// 然后判断一下首尾的元素的和是否大于目标值x
// 如果大于那么j--缩小范围
if (a[i] + b[j] == x) // 如果等于了 就输出结果
{
printf("%d %d\n", i, j);
break;
}
}
return 0;
}
Java
代码语言:javascript代码运行次数:0运行复制#include<bits/stdc++.h>
using namespace std;
ct int = 100010;
int n, m;
int x;
int a[], b[];
int main()
{
cin >> n >> m >> x;
for (int i = 0; i < n; ++ i) cin >> a[i];
for (int j = 0; j < m; ++ j) cin >> b[j];
for (int i = 0, j = m - 1; i < n; ++ i) // 双指针算法 设置两个指针i,j
// i从前往后走 j从后往前走
{
while (j >= 0 && a[i] + b[j] > x) j --; // 首先需要判断一下是否 i,j走出界
// 然后判断一下首尾的元素的和是否大于目标值x
// 如果大于那么j--缩小范围
if (a[i] + b[j] == x) // 如果等于了 就输出结果
{
printf("%d %d\n", i, j);
break;
}
}
return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:202-02-24,如有侵权请联系 cloudcommunity@tencent 删除数组算法指针int数据 #感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-19 11:07:03
推荐阅读
留言与评论(共有 10 条评论) |
本站网友 嘉兴租房 | 0秒前 发表 |
C++代码语言:javascript代码运行次数:0运行复制#include<bits/stdc++.h> using namespace std; ct int = 100010; int n | |
本站网友 深圳康佳电视维修 | 17分钟前 发表 |
最后 | |
本站网友 心理ct | 10分钟前 发表 |
这个时候就需要打印这次的这个结果 | |
本站网友 广州人流医院 | 13分钟前 发表 |
j); break; } } return 0; }本文参与 腾讯云自媒体同步曝光计划 | |
本站网友 停车位面积 | 7分钟前 发表 |
数据范围 数组长度不超过 105 | |
本站网友 死链检查 | 3分钟前 发表 |
写一个if判断一下 | |
本站网友 曙光服务器 | 13分钟前 发表 |
j) | |
本站网友 烟台金沙滩 | 22分钟前 发表 |
数据保证有唯一解 | |
本站网友 柯桥玉兰花园 | 20分钟前 发表 |
首先是设置两个指针 |