c++给定一个int型数组 array 和一个整数 target,请你在该数组中找出和为 target 值的两个int型元素,并返回它们在数组中的下标。
时间: 2024-03-20 15:39:13 浏览: 75
有一个一维数组内放个学生成绩求平均成绩。-C++语法详解
这是一道经典的数组题目,可以使用两重循环来解决。具体思路如下:
1. 第一重循环枚举数组中的每个元素 nums[i]。
2. 第二重循环从 i+1 开始遍历数组,对于每个元素 nums[j],判断它与 nums[i] 的和是否等于 target。
3. 如果相等,则说明找到了两个元素的和为 target,返回它们的下标。
4. 如果遍历完整个数组仍然没有找到符合条件的元素,则返回一个空的下标数组。
下面是完整的 C++ 代码实现:
```c++
#include <vector>
using namespace std;
vector<int> twoSum(vector<int>& nums, int target) {
for (int i = 0; i < nums.size(); i++) {
for (int j = i + 1; j < nums.size(); j++) {
if (nums[i] + nums[j] == target) {
return {i, j};
}
}
}
return {};
}
```
这种解法的时间复杂度为 O(n^2),不如哈希表解法的 O(n)。但是它的思路比较简单,可以作为暴力解法的一个例子。
阅读全文