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.
Example:
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
我的解答:
class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> outcome; bool found = 0; int a = 0; int b = 0; for (int i = 0; i < nums.size(); i++) { a = i; for (int j = i + 1; j < nums.size(); j++) { if (nums[i] + nums[j] == target) { b = j; outcome.push_back(a); outcome.push_back(b); found = 1; break; }} if (found) break; } return outcome; } };因为很久没有打代码了,因此开始先选了一道easy类型的,解答过程中果然会碰到不少问题。我的思路非常简单,就是用两个循环一个一个的试,这里面我一开始图方便把大于target的都跳过,后来发现这样会把负数忽略掉,因此不能有任何附加的判断;另外leetcode上好像是不考虑两个重复的,因此第二个循环开始的系数是第一个循环的当前系数加1