两数之和

  • 题目描述:给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和目标值target的那两个整数,并且返回他们的下标,每次输入都会对应一个答案

    1. var twoSum = function (nums,target) {
    2. for(let i = 0,len=nums.length;i<len;i++) {
    3. let obj = {}
    4. if (nums[i] in obj) {
    5. return [obj[nums[i]],i]
    6. } else {
    7. obj[target-nums[i]] = i
    8. }
    9. }
    10. }
  • 解题思路:用对象obj去存储当前数据对应数据,键值为对应数据,键值为下标,如果当前数据存在于obj中,那么就找到了,并将当前下标和记录的下标返回

整数反转

  • 给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[-231,,231-1],就返回0.假设环境不允许存储64位整数(有符号或无符号) ```javascript /**

/ var reverse = function (x) { let rev = 0 while(x!==0) { const digit = x % 10 x = ~~(x/10) rev = rev 10 + digit if (revMath.pow(2,31)) { return 0 } } return rev } ```

  • 解题思路:找规律,既然是数字反转就得找相应的规律,那么每次除以10取余数,每次的余数即要反转的数据,将余数拼接返回即可