求助,单调栈一加那行while就出错

SP1805 HISTOGRA - Largest Rectangle in a Histogram

现在都中午了,怎么会有人 上午问的话,帮忙的人更多吧 23333
by fAKire @ 2019-10-08 02:06:08


233
by Ludo @ 2019-10-08 02:41:38


栈空了
by ix35 @ 2019-10-08 06:37:16


@[江沢铭路](/space/show?uid=59285) 改成 ```cpp while(!s.empty()&&a[i]<s.top()) ```
by _兰_ @ 2019-10-08 08:31:42


@[_兰_](/space/show?uid=96300) 谢谢大佬 换成这个的确解决的 但我之前考虑过这个 所以写了while(a[i]<s.top()&&!s.empty()) 理论上和您的没区别 但依然跑不动 十分不解
by 违规用户名59285 @ 2019-10-08 20:55:08


@[江沢铭路](/space/show?uid=59285) 噢噢 问题已解决
by 违规用户名59285 @ 2019-10-08 21:01:14


@[江沢铭路](/space/show?uid=59285) 有区别。对于`and`逻辑,判断的时候会默认先执行`&&`符号左边的语句,如果左边=1才去判断右边。所以说你应该把`!s.empty()`放到左边。 这似乎也可以卡常数?如果你写一个语句`if(s1()&&s2())`而其中你发现`s2()`可以比`s1()`剪掉更多的状态,你就可以换一下位置。
by _兰_ @ 2019-10-09 07:56:53


|