0
이 대답을위한 알고리즘을 만들기 위해지도를 사용하려고합니다. https://leetcode.com/problems/two-sum/#/description O (n),하지만 몇 가지 이유 때문에 내가 많은 테스트 케이스에 대한 부적절한 지표를 얻고 있습니다. 시도 :LeetCode : TwoSum Solution
내가 말할 수있는 것부터, 나는 이터레이터에 대한 검사를 올바르게하고있다. 그러나 이것들은 나에게 새로운 것이고, 나는 내가 원하는 정확한 색인을 반환하는지 잘 모르겠다.
//My Code:
#include <iostream>
#include <cstdio>
#include <array>
#include <vector>
#include <map>
std::vector<int> twoSum(int nums[], int size, int target)
{
std::vector<int> answer;
std::map<int, int> myMap;
std::map<int, int>::iterator it;
std::cout << size << std::endl;
for (int i = 0; i < size; i++)
{
myMap.insert(std::pair<int, int>(nums[i], i));
int indexItOne = distance(myMap.begin(), myMap.find(nums[i]));
int indexItTwo = distance(myMap.begin(), myMap.find(target-nums[i]));
it = myMap.find(target - nums[i]);
if (it != myMap.begin() || indexItOne != indexItTwo)
{
answer.push_back(i);
answer.push_back(distance(myMap.begin(), myMap.find(target - nums[i])));
return answer;
}
}//for
}//twoSum
변경이'그것은 = myMap.begin()'이'그것은 = myMap.end()'... 실제로 그것을 긁어 라. 너는 내가 길을 잃었고 너의 논리를 따라갈 수없는 많은 발견들을 가지고있다. – Arash
루프가 끝나면 어떻게됩니까? 그 때 무엇을 돌려 주나요? –
오, 와우, 어떻게 거기에있어 myMap.begin() 모르겠지만 네 확실히 가장해야 myMap.end() –