class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int size = nums.size();
map<int, int> m;
for (int i = 0; i < size; ++i) {
if (m[target - nums[i]] >= 1)
return { i, m[target - nums[i]] - 1 };
m[nums[i]] = i + 1;
}
return { 0, 1 };
}
};
// 0ms
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> cpy(nums.begin(), nums.end());
sort(nums.begin(), nums.end());
int i = 0, j = nums.size()-1;
vector<int> res;
while (i < j) {
int s = nums[i]+nums[j];
if (s == target) {
res = {nums[i], nums[j]};
cout << nums[i] << nums[j] << endl;
break;
}
if (s < target) i++;
else j--;
}
for (int i = 0; i < cpy.size(); i++) {
if (res[0] == cpy[i]) {
res[0] = i;
break;
}
}
for (int i = 0; i < cpy.size(); i++) {
if (i != res[0] && res[1] == cpy[i]) {
res[1] = i;
break;
}
}
return res;
}
};
'알고리즘 > leetcode' 카테고리의 다른 글
120. Triangle (0) | 2022.07.22 |
---|---|
Subsets II - medium (0) | 2021.08.04 |
Making A Large Island (0) | 2021.08.01 |
Map Sum Pairs (0) | 2021.07.31 |
Partition Array into Disjoint Intervals (0) | 2021.07.22 |