PS
leetcode) #1. Two sum
tose33
2021. 2. 18. 17:28
처음에 내가 제출한 코드.
#include <iostream>
#include <algorithm>
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> ans;
for(int i = 0; i < nums.size(); i++) {
for(int j = i + 1; j < nums.size(); j++) {
if (nums[i] + nums[j] == target) {
ans.push_back(i);
ans.push_back(j);
break;
}
}
}
return ans;
}
};
....느리다
빠른거 참고해서 다시 제출한 코드
#include <iostream>
#include <algorithm>
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> ans;
int len = nums.size();
for(int i = 0; i < len; i++) {
for(int j = i + 1; j < len; j++) {
if (nums[i] + nums[j] == target) {
ans = {i, j};
return ans;
}
}
}
return ans;
}
};
다른점은 루프돌면서 push_back 하지 않고, 그냥 바로 값을 리턴.
백준에서 풀때는 이런걸 신경안썼는데, 리트코드는 그래프로 런타임을 쫙 보여주니 신경쓰게 된다.
앞으로는 runtime 도 신경써가면서 연습하는 버릇을 들여야겠다.