jennyliulfm
jennyliulfm
解释 浅显易懂 那个 addNum 的逻辑有点难理解和记忆: 我这么改了一下,首先把第一个num 存到 small heap, 如果当前要添加的元素小于small的堆顶元素 也存到small里面,否则存到large 里面,这样保证了small里面的元素都比large里面的小;step2: 调整heap 的元素;如果元素之差多余1 就去调整元素,把元素多的堆顶元素放到元素少的堆里面。具体实现如下: ```java public void addNum(int num) { if(small.size() == 0 || num < small.peek()) { small.offer(num);...
感觉 现在在写遍历方向就好了。 在确定遍历方向之前 是不是需要最终的结果存在那个位置以及base case的位置 然后才能根据那两条rules 去确定遍历方向
精妙 虽然我没有完全理解 但是的确用最简单的语言 把相对复杂的问题解释的很清楚 点赞
circular next greater element 用double the size,然后取余绝了 虽然计算了两遍,但是没有复杂逻辑 容易理解 记忆 总结规律。点赞点赞。用站队 很形象的描述了单调栈的本质 在写while loop 保持栈的单调递增或者单调递减的时候 再也不用犹豫 condition了