[LeetCode] 两数之和
英文描述
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
中文描述
给定一个整数数列,找出其中和为特定值的那两个数。
你可以假设每个输入都只会有一种答案,同样的元素不能被重用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
解题:
class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target)
{
vector<int> result = {};
for (size_t i = 0; i < numbers.size(); i++)
{
// 在numbers中找 target - numbers[i] 这个值
int numberFind = target - numbers[i];
auto iter = find(numbers.cbegin(), numbers.cend(), numberFind);
if (iter != numbers.cend())
{
// 找到,算出其位置index
int index = distance(numbers.cbegin(), iter);
if (index == i)
continue;
result.emplace_back(i);
result.emplace_back(index);
break;
}
}
return result;
}
};
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: C 删除一个数组中重复的元素
- 下一篇: C语言内存分配详解