leetcode [Two Sum]

解法一:

public class Solution {//Java O(N^2)
    public int[] twoSum(int[] nums, int target) {
        int[] res = new int[2];
        for(int i = 0; i < nums.length; i++){
            for(int j = i + 1; j < nums.length; j++){
                if(nums[i] + nums[j] == target){
                    res[0] = i;
                    res[1] = j;
                    return res;
                }
            }
        }
        return res;
    }
}

 解法二:

class Solution {//C++ 用到了map,能快一些,容器的好处
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        map<int, int> map_temp;
        vector<int> res;
        for(int i = 0; i < nums.size(); i++){
            map_temp[nums[i]] = i;
        }
        for(int i = 0; i < nums.size(); i++){
            int t = target - nums[i];
            if(map_temp[t] && (map_temp[t] != i)){
                res.push_back(i);
                res.push_back(map_temp[t]);
                return res;
            }
        }
        return res;
    }
};

 

posted @ 2017-12-03 13:46  melon1ce  阅读(110)  评论(0)    收藏  举报