LintCode-兩數之和
阿新 • • 發佈:2019-02-03
題目描述:
給一個整數陣列,找到兩個數使得他們的和等於一個給定的數 target。
你需要實現的函式twoSum
需要返回這兩個數的下標, 並且第一個下標小於第二個下標。注意這裡下標的範圍是 1 到 n,不是以 0
開頭。
樣例:
給出 numbers = [2,
7, 11, 15]
, target = 9
,
返回 [1, 2]
.
做題思路:這一題比較簡單,就是用for迴圈在陣列中尋找兩個元素相加等於給定數值的元素,如果相加等於給定target,就將下標填進新的陣列中,返回新陣列。但是題目中的下標範圍是1到n,並不是0到n-1。
關鍵程式碼:
class Solution { public: /* * @param numbers : An array of Integer * @param target : target = numbers[index1] + numbers[index2] * @return : [index1+1, index2+1] (index1 < index2) */ vector<int> twoSum(vector<int> &nums, int target) { // write your code here int i,j; vector<int> v; for(i=0;i<nums.size();i++) { for(j=i+1;j<nums.size();j++) { if(nums[i]+nums[j]==target) {v.push_back(i+1); v.push_back(j+1);} } } return v;這一題沒用到什麼新學的排序內容,就是用了單純的for迴圈來查詢,比較簡單。 } };
做題感想: