首先,leetcode是啥?leetcode是一个在线OJ(Online Judge)平台,它提供了大量的面试题目,这些题目大多来自于业内大公司的真实面试,所以对我以后毕业去搬砖有很大的帮助。我目前大二,学完了学校开设的C++课程,自学了一点JavaScript,编程能力约等于零,这篇文章我就打算记录一下我做这些题目的想法,希望藉此能提高自己。

1.两数之和

leetcode题库里的第一题,就像四级词汇第一个单词是abandon一样。
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

因为C++的知识已经忘光了,所以我用JavaScript写的,暴力两层for嵌套

var twoSum = function(nums, target) {
for(let i = 0,len = nums.length;i<len;i++){
for(let j = i+1;j<len;j++){
if(nums[i]+nums[j] == target) return [i,j];
}
}
};

显然,这个方法很捞,但我目前几乎没有什么编程能力,只能等以后系统学习了JavaScript再来重做了。。
gif

2.两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

这题看了半天没看明白,数据结构学的已经全部还给老师,放弃,以后再写。。
jpg