LeetCode第一題:兩數之和
阿新 • • 發佈:2018-11-15
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。
你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。
示例:
給定 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;
}
};