1 条题解
-
0
📝 题目大意
给定一个长度为 的数组 ,以及两个整数 和 。在 中找到值等于 的元素,输出其下标(从 1 开始)。题目保证答案唯一。
💡 解题思路
- 题目分析: 最多 ,数据范围非常小,只需线性扫描即可。 的值域题目未特别说明,直接用
int即可。 - 算法推导:
- 首先读入 ,计算目标值
target = A + B。 - 遍历 从 到 ,每次读入 。
- 若 等于
target,输出 并结束循环。
- 首先读入 ,计算目标值
- 边界与细节:
- 题目保证答案唯一且一定存在,无需处理未找到的情况。
- 下标从 开始,注意遍历时计数从 起。
- 找到后直接
break退出,避免多余操作。
⏱️ 复杂度分析
- 时间复杂度:,最坏情况下扫描整个数组。
- 空间复杂度:,仅使用常数个变量。
💻 标准代码 (C++)
#include <iostream> using namespace std; int main() { int N, A, B; cin >> N >> A >> B; int target = A + B; // 计算目标值 A + B for (int i = 1; i <= N; i++) { int c; cin >> c; if (c == target) { // 找到匹配的元素 cout << i << endl; // 输出其 1-based 下标 break; // 答案唯一,找到即可退出 } } return 0; } - 题目分析: 最多 ,数据范围非常小,只需线性扫描即可。 的值域题目未特别说明,直接用
- 1
信息
- ID
- 706
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者