第一题,做一些小说明。
力扣上写的代码不是完整的程序,而是方法。写好之后上传,后台会调用你写的代码测试案例,通过的话就欧了,没通过的话就 N/A。
上传之后会显示运行时间和内存消耗,还能看到你打败了多少人。
第一题我的思路就是暴力循环,O(n²) 的复杂度,听说可以用哈希表,可以在O(n)的复杂度下解决问题,但是我不懂哈希表,暂时也没有精力去学。
C++代码如下
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> result(2, -1);
for (int i = 0; i < nums.size(); i++){
for (int j = i + 1; j < nums.size(); j++){
if (nums[j] == target - nums[i]){
result[0] = i;
result[1] = j;
break;
}
}
}
return result;
}
};
python代码如下
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
result = []
for i in range(len(nums)):
for j in range(i + 1, len(nums)):
if nums[i] + nums[j] == target:
result = [i, j]
return result
不过虽然都是暴力循环,但是C++的执行速度快了很多。