社区讨论

求助!关于if判断先后会影响答案吗

学术版参与者 5已保存回复 9

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@mi4b0g6r
此快照首次捕获于
2025/11/18 16:20
3 个月前
此快照最后确认于
2025/11/18 21:01
3 个月前
查看原帖
我正在做一道单调栈的老题,但是无论如何都通过不了,看了题解后发现逻辑完全相同,只有if判断的地方不同,改了之后就ACAC了,核心错误代码如下求解答:
我的30pts30pts代码:
CPP
if(q.size()&&h[i]<h[q.top()]) //来的比我小 
		{
			ans[q.top()]+=v[i];
		}
		else
		{
			while(q.size()&&h[q.top()]<h[i]) //来的比我大 
			{
				ans[i]+=v[q.top()];
				q.pop();
			}		
		}
改了ACAC的代码:
CPP
while(q.size()&&h[q.top()]<h[i]) //来的比我大 
		{
			ans[i]+=v[q.top()];
			q.pop();
		}	
		if(q.size()) //来的比我小 
		{
			ans[q.top()]+=v[i];
		}
实在看不出来有什么区别,当然我很唐了

回复

9 条回复,欢迎继续交流。

正在加载回复...