std::std::unordered_set 中的距离

问题描述 投票:0回答:1

我想借助HashSet来解决这个问题。当我尝试发布解决方案时,在第二种情况下失败,答案为 [2,0]

但是,当我尝试在 IDE 上做同样的事情时,它会返回正确的答案

代码:

std::vector<int> twoSum(std::vector<int>& nums, int target) 
    {
        std::unordered_set<int> mp;
        for (auto i = 0; i < nums.size(); ++i) 
        {
            if (auto it = mp.find(target - nums[i]); it == mp.end()) 
            {
            mp.emplace(nums[i]);
            }
            else 
            {
                return {static_cast<int>(std::distance(mp.begin(), it)), i };
            }
        }
    return {};
    }

c++ hashset
1个回答
0
投票
class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int n = nums.size();
        for (int i = 0; i < n; ++i) {
            for (int j = i + 1; j < n; ++j) {
                if (nums[i] + nums[j] == target) {
                    return {i, j};
                }
            }
        }
        return {};
    }
}

来自Leetcode中国,官方解释

© www.soinside.com 2019 - 2024. All rights reserved.