給定 nums = [2, 7, 11, 15], target = 9
因?yàn)?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++){ // 遍歷數(shù)組
const n1 = target - arr[i] // 找出差值
if(map.has(n1)){ // 判斷map中
return [map.get(n1), i] // 返回結(jié)果
}
map.set(arr[i], i)
}
return []
}
給定一個(gè)由 整數(shù) 組成的 非空 數(shù)組所表示的非負(fù)整數(shù)棍厌,在該數(shù)的基礎(chǔ)上加一惯吕。
最高位數(shù)字存放在數(shù)組的首位腺劣, 數(shù)組中每個(gè)元素只存儲(chǔ)單個(gè)數(shù)字倒庵。
你可以假設(shè)除了整數(shù) 0 之外褒墨,這個(gè)整數(shù)不會(huì)以零開(kāi)頭。
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]
}
實(shí)現(xiàn)Promise.all (每個(gè)promise resolve結(jié)果存數(shù)組擎宝,最后一個(gè)promise返回時(shí)郁妈,把數(shù)組返回)
// 版本一
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 天(股票價(jià)格 = 1)的時(shí)候買入,在第 5 天(股票價(jià)格 = 6)的時(shí)候賣出绍申,最大利潤(rùn) = 6-1 = 5 噩咪。
注意利潤(rùn)不能是 7-1 = 6, 因?yàn)橘u出價(jià)格需要大于買入價(jià)格顾彰;同時(shí),你不能在買入前賣出股票胃碾。
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
}
實(shí)現(xiàn)typescript的Paramters涨享、ReturnType (考察infer關(guān)鍵字使用)
實(shí)現(xiàn)一個(gè)并發(fā)請(qǐng)求控制函數(shù),限制并發(fā)數(shù)
實(shí)現(xiàn)bind函數(shù)
實(shí)現(xiàn)快速排序