FT
递归乘法
/**
* @param {number} A
* @param {number} B
* @return {number}
*/
var multiply = function(A, B) {
if(A === 0 || B === 0) return 0
if(B === 1) return A
if(A === 1) return B
return A + multiply(A, B -1)
};
other
两个人轮流抛硬币,规定第一个抛出正面的人可以吃到苹果,请问先抛的人能吃到苹果的概率多大?
轮流制:先抛的人吃到苹果的概率:1/2 + 1/2^3 + 1/2^5 + ... 求得结果为 2/3
数组
查询数组中有没有比它前面元素都大,比它后面的元素都小的数
function getIndexs(arr: number[]): number[]{
let results: number[] = [], len = arr.length, right = [], min = arr[len - 1]
for(let i=len-2;i>=0;i--){
if(arr[i]< min){
min = arr[i]
right[i] = min
}
}
let max = arr[0]
for(let i=1;i<len-1;i++){
if(arr[i] > max){
max = arr[i]
if(arr[i] === right[i]){
results.push(max)
}
}
}
return results
}
const arr = [21,11,45,56,9,66,77,89,78,68,100,120,111]
console.log(getIndexs(arr))
myNew
function myNew(constructor, ...args){
// let obj = {}
// Object.setPrototypeOf(obj, Con.prototype)
let obj = Object.create(constructor.prototype)
let res = constructor.apply(obj, args)
return res instanceof Object ? res : obj
}
冒泡标记
function bubbleSortFlag(arrr: number[]){
let len = arr.length - 1
for(let i=0;i<len;i++){
let flag = true
for(let j=0;j<len - i;j++){
if(arr[j] > arr[j+1]){
let temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
flag = false
}
}
if(flag){
break
}
}
return arr
}