请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

本节中的 反转 可以使用 reverse 方法吗?

如题,以下代码如果使用 reverse 岂不是只用一个数组就能实现吗?顺便问下 如果使用 reverse 的话,delete 的时间复杂度也是 O(n) 吧

export class MyQueue {
    private stack: number[] = []

    /**
     * 入队
     * @param n number
     */
    add(n: number) {
        this.stack.push(n)
    }

    /**
     * 出队
     */
    delete(): number | null {
        let res
        let stack = this.stack

        stack.reverse()
        res = stack.pop()
        stack.reverse()

        return res || null
    }

    // 函数前加 get , 就可以使用属性形式调用 ( .length )
    get length(): number {
        return this.stack.length
    }
}

// 功能测试
// const q = new MyQueue()
// q.add(100)
// q.add(200)
// q.add(300)
// console.log(q.length)
// console.log(q.delete())
// console.log(q.length)

正在回答 回答被采纳积分+3

1回答

双越 2022-02-25 08:18:19

可以用 reverse 来翻转。翻转之后 add 和 delete 操作就互换了。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信