面试算法,记录

给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

function TwoNum(target, arr){
  const map = new Map(); // 利用es6的新特性
  for(let i = 0; i < arr.length; i++){ // 遍历数组
    const n1 = target - arr[i] // 找出差值
    if(map.has(n1)){ // 判断map中
      return [map.get(n1), i] // 返回结果
    }
    map.set(arr[i], i)
  }
  return []
}

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。

function addOne(nums) {
    for(var i = nums.length-1; i>=0; i--) {
        console.log(nums[i])
        if(nums[i] !== 9){
            nums[i] ++
            console.log(nums)
            return nums
        } else {
            nums[i] = 0
        }
    }
    return [1, ...nums]
}

实现Promise.all (每个promise resolve结果存数组,最后一个promise返回时,把数组返回)

// 版本一
Promise.all = function(promises){
  let resutls = []
  return new Promise((resolve) => {
    promise.forEach((val) => {
      val.then(res => {
        results.push(res)
      })
    })
    resolve(results)
  })
}

Promise.prototype.all = function(promises){
  let result = []
  let promiseCouunt = 0
  let promiseLength = promises.lenght
  return new Promise((resolve, reject) => {
    for(var i = 0; i < promiseLenght; i ++ ){
      const val = pormises[i]
      Promise.resolve(val).then(function(res){
        promiseCount ++
        results[i] = res
        if(promiseCount === promiseLength){
          return resolve(results)
        }
      }, function(err){
        console.log(err)
      })
    }
  })
}

输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

function findProfit(list) {
  let max = 0;
  let len = list.length
  for(var i = 0; i < len - 1; i++){
    for(var j = 0; j < len; j ++) {
        let n1 = list[i] - list[j]
        let n1Post = Math.abs(n1)
        if(n < 0 && n1Post > max){
          max  = n1Post
        }
    }
  }
  return max
}

实现typescript的Paramters、ReturnType (考察infer关键字使用)

实现一个并发请求控制函数,限制并发数
实现bind函数
实现快速排序

你可能感兴趣的:(面试算法,记录)