原题:https://leetcode.com/problems/two-sum/description/
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].
题解:第一轮遍历数组,先确定i的位置,然后再在i后面的元素中查找和target-nums[i]相等的元素确定j。
查找函数直接调用了find。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
for (vector<int>::iterator i = nums.begin(); i != nums.end(); i++) {
vector<int>::iterator iter = find(i+1, nums.end(), target-*i);
if (iter != nums.end()) {
return vector<int>({distance(nums.begin(), i), distance(nums.begin(), iter)});
}
}
}
};
19 / 19 test cases passed.
Status: Accepted
Runtime: 116 ms