https://leetcode-cn.com/problems/two-sum/
    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    示例:

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

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

    第一次了解下文档使用,划水.
    我的暴力解法:
    循环而已,很好理解

    1. class Solution {
    2. public:
    3. vector<int> twoSum(vector<int>& nums, int target) {
    4. vector<int>a;
    5. for(int i=0;i< nums.size()-1;i++){
    6. for(int j=i+1;j<nums.size();j++){
    7. if(nums[i]+nums[j]==target){
    8. a.push_back(i);
    9. a.push_back(j);
    10. }
    11. }
    12. }
    13. return a;
    14. }
    15. };

    看过参考后更好的哈希解法:
    看到哈希两个字,应该就明白怎么写了,注意下语法问题就好

    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target) {
            unordered_map <int,int> m;
            for(int i=0;i<nums.size();i++){//找得到就返回
                if(m.find(target-nums[i])!=m.end()){
                    return {m[target-nums[i]],i};
                }
                m[nums[i]]=i;//找不到就塞进map里
            }
         return {};
         }
    };