首先,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 再来重做了。。

2.两数相加

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

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


菜鸡一个,啥也不会。