1. 程式人生 > >leetcode大戰! 001 two sum

leetcode大戰! 001 two sum

C++

4ms

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        
	map<int, int> tmpmap;//鍵值為nums的值,變數值為nums下標
 
	for (int i = 0; i < nums.size(); ++i) {
		if (tmpmap.count(nums[i])) {
			return {tmpmap[nums[i]],i};
		}
		tmpmap[target - nums[i]] = i;
	}
    return {};
    }
};

8ms

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        
	map<int, int> tmpmap;//鍵值為nums的值,變數值為nums下標
 
	for (int i = 0; i < nums.size(); ++i) {
		if (tmpmap.find(nums[i])!=tmpmap.end()) {
			return {tmpmap[nums[i]],i};
		}
		tmpmap[target - nums[i]] = i;
	}
    return {};
    }
};

time limit exceeded

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {

        for(int i = 0;i < nums.size();i++)
        {
            for(int j = i+1;j <=nums.size();i++)
            {
                if(nums[j] == target-nums[i])
                {
                    return {i,j};
                }
            }
            
        }
        
    return {};
    }
};