1. 程式人生 > >[leetcode]兩數之和(Two Sum)

[leetcode]兩數之和(Two Sum)

最近開始做leetcode上的題目,在此簡單做一下記錄。從簡單的題開始做,每週週末更新本週完成的題目ヘ(`▽´*)

有任何不正確的地方還請大佬們指正。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

兩數之和(Two Sum)

2018.10.8

給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個

數。

你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

題解:

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int length = nums.size();
        vector<int> re(2);
        for(int i=0;i<length;i++)
        {
           for(int j=i+1;j<length;j++)
            {
                if(nums[i]+nums[j]==target)
                {
                    re[0]=i;
                    re[1]=j;
                    return re;
                }  
            } 
        }
        
    }
};

本題我採用的是暴力迴圈的方法,因為...好想啊!

定義迴圈變數i,j,i從0開始迴圈整個vector,j從i所在位置的後一個開始,同樣迴圈到最後。如果其中有兩個元素相加的值等於給出的target,則將兩個元素所對應的下標即i,j的值存入新的vector re,並返回vector  re即可。

備註:此題為leetcode的第一題,是刷題的第一道門。