右侧第一个比自己大的数字

const firstBiggerThanMe = (arr = [4,9,32,1,2,5,6,6,3,8,10,9]) => {
    const len = arr.length
    const stack = []
    const firstBiggerArr = new Array(len).fill(-1)
    for (let i = len - 1; i > -1; i--) {
        const v = arr[i]
        while(stack.length && stack[stack.length - 1] <= v){
            stack.pop()
        }
        if(stack[stack.length - 1]){
            firstBiggerArr[i] = stack[stack.length - 1]
        }
        stack.push(v)
    }
    return firstBiggerArr
}

  

posted @ 2020-07-23 17:13  671_MrSix  阅读(154)  评论(0编辑  收藏  举报