LeetCode # Two Sum

版权声明:转载请注明原文地址即可,要是本文对您有些许帮助的话,请您在下方点个赞,谢谢啦ヾ(o◕∀◕)ノヾ https://blog.csdn.net/qq_33583069/article/details/86760145
class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int len = nums.size();
        vector<int> ans;
        for(int i=0;i<len-1;i++){
            for(int j=i+1;j<len;j++)
                if(nums[i]+nums[j]==target){
                    ans.push_back(i);
                    ans.push_back(j);
                    return ans;
                }
        }
        return ans;
    }
};

开始报错:
solution.cpp: In member function twoSum
Line 14: Char 5: error: control reaches end of non-void function [-Werror=return-type]
}
^
cc1plus: some warnings being treated as errors
是因为开始的代码是

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int len = nums.size();
        vector<int> ans;
        for(int i=0;i<len-1;i++){
            for(int j=i+1;j<len;j++)
                if(nums[i]+nums[j]==target){
                    ans.push_back(i);
                    ans.push_back(j);
                    return ans;
                }
        }
   // 没有这一句    return ans;
    }
};

so…如果有同样错误的小伙伴们你们知道该咋改了吧
之前没做过类似leetCode这种形式的平台,感觉挺有意思的,嘻嘻。

附上java code:

class Solution {
    public int[] twoSum(int[] nums, int target) {
        for(int i=0;i<nums.length;i++){
            for(int j=i+1;j<nums.length;j++)
                if(nums[i]+nums[j]==target){
                    return new int[]{i,j};
                }
        }
        return null;
    }
}

上面都是暴力写的,下面用hash表。

参考代码:

class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer>map = new HashMap<>();
        for(int i=0;i<nums.length;i++)map.put(nums[i],i);
        for(int i=0;i<nums.length;i++){
            int t = target-nums[i];
            if(map.containsKey(t)&&map.get(t)!=i){
                return new int[]{i,map.get(t)};
            }
        }
        return null;
    }
}
展开阅读全文

没有更多推荐了,返回首页