1.leetCode第一题

需要:
https://leetcode-cn.com/probl...
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。
输出:nums = [2,7,11,15], target = 9
输入:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

  let nums = [2, 7, 11, 15];  function print(nums, target) {   //创立映射表    let hash = {};    for (let i = 0; i < nums.length; i++) {    //将每次循环的数据存储起来 例如索引为0={2:0}      hash[nums[i]] = i;     //应用减法来寻找映射表中是否存在对应的值  这里是9-7成立 = 2映射表中存在键为2的属性而它对应的值正是索引      if (hash[target - nums[i]] != undefined) {     //将寻找到的2和以后被减的索引return进来就满足了本题的后果        return [hash[target - nums[i]], i];      }    }  }

2.leetCode第二题

需要:
https://leetcode-cn.com/probl...
给你两个非空的链表,示意两个非负的整数。它们每位数字都是依照逆序的形式存储的,并且每个节点只能存储一位数字。
输出:l1 = [2,4,3], l2 = [5,6,4]
输入:[7,0,8]
解释:342 + 465 = 807.

/* 输出:l1 = [2,4,3], l2 = [5,6,4]输入:[7,0,8]解释:342 + 465 = 807.*/  //实现一个创立节点的类  function ListNode(val) {    this.val = val;    this.next = null;  }  var addTwoNumbers = function (l1, l2) {    // 链表的头    var node = new ListNode("head");    //这里的cur相似一个针 计算完l1.val+l2.val之后 向下指    var cur = node;     // 每次记录是否超过了10 如果超过须要进位    var n = 0;    // 每次从新赋值l1和l2的和    var sum = 0;    while (l1 || l2) {      var n1 = l1 ? l1.val : 0;      var n2 = l2? l2.val : 0;      //这里的n是代表进位过去的数值 如果小于10 n就为0      sum = n1 + n2 + n;      //将n置为小数 前面会用到      n = parseInt(sum / 10);      //%10是为了如果大于等于10只保留个位      cur.next = new ListNode(sum % 10); //设置以后结点的下一个结点      cur = cur.next; //将以后结点后退到下一个结点      if (l1) {        l1 = l1.next;      }      if (l2) {        l2 = l2.next;      }    }    //为了链表的最初一位相加也大于等于10的解决,比方[9,9,9]+[9,9,9],那么通过上面的解决就不会失落最初一位     //这里的n通过下面的/10的解决 如果大于0那就是十位数     //那么下面的sum值就会进行这一次的累加    if (n > 0) {      cur.next = new ListNode(n);    }    return node.next;  };