LeetCode 初体验
由于是第一次在LeetCode上面A题,而且确实很久没有写C++了,就选择了一道easy的题目进行尝试,先了解LeetCode的编辑器,环境,judging及反馈等。
LeetCode给我的感觉还是很不错的,虽然编辑器不算特别好用,但是online编辑器一般都是这样,然后提交评测部分是重点,速度快,而且有报错,有Except Answer 和 Your Answer的对比, 不会像sicily一样为了一个没有想到的特殊情况头都想懵。
值得一提的是,LeetCode的discuss部分很好,有很多很好的code的分享,经过思考解决题目后,再去看别人更好的答案会有豁然开朗的感觉,很不错。
TwoSum
由于只是随便选了一题简单的来试试水,所以这题并没有什么好讲的。直接暴力的双重冒泡的循环求解。时间复杂度O(n^2),看discuss的基本都是O(n)的,就是把内层循环改成hash的查询,以空间换时间。而且题目提到了只会有一个答案,这不失为一个好的方法,而且确实也不难想到。直接贴上我的code()
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
for (int i = 0; i < nums.size()-1; i++) {
for (int j = i + 1; j < nums.size(); j++) {
if (nums[i] + nums[j] == target) {
return {i, j};
}
}
}
}
};
另外出了点小意外的就是Mac OS的 gcc似乎在链接的时候总是会报链接库的错误,最后改用g++后解决。