1. 程式人生 > >LeetCode第一題:兩數之和

LeetCode第一題:兩數之和

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

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

示例:

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

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

  我拿到這個題的第一反應是暴力遍歷(容許我做一個悲傷的表情),其時間複雜度為O(n^2)。

  整體思路就是遍歷整個容器去查詢是否有兩個數的和為目標,是的話就把它們存在一個vector中。簡單暴力。。。。。

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