第一次用LeetCode写代码。第一周事情比较多,比较忙碌,所以先从最简单的Two Sum开始写起啦。我也好久不用C++写程序了,所以第一周就当练练手了
Two Sum其实很好理解,就是给你一个整数数组和一个名叫target的整数,需要求出数组中两个整数的下标,这两个整数满足加起来等于target。最简单的思路,这道题可以用两个循环来解决:内部循环是将数组中某个数与在它之后的每个数相加,判断是否等于target;外部循环就是从数组中的第一个数开始,直到数组中的倒数第二个数,对它们每个数进行一次内部循环。这样,当我们第一次找到加起来等于target的两个数之后,我们可以从外部循环和内部循环分别获取到它们的下标,然后返回,题目得解。
由于本题已经假设了至少存在一组解,那么也就排除了边界情况。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
for (int i = 0; i <= nums.size() - 2; ++i) {
for (int j = i + 1; j <= nums.size() - 1; ++j) {
if (nums[i] + nums[j] == target) {
vector<int> answer(2);
answer[0] = i;
answer[1] = j;
return answer;
}
}
}
}
};