首先,原题数组会有负数。你这初始化max = 0,给你个[-1, -1] 2的输入,初始化完成后res是0[0,0]
其次,初始化完d里永远只有一个元素。如果给你[3, 2, 0, 0] 3,初始化完2都被你丢掉了,你打算怎么输出答案里的第二位( ゚∀。)
再次,数组越界了。给你[0, 0] 2,会因为0<2-2+1进入循环,而你的循环会访问heights0[0,2]
同时,循环边界条件有问题。还是给你[0, 0] 2,显然答案大小是1,而你在初始化和循环各向res推了一个数
这可能不是全部的问题,但是显然你的整个程序需要重写,再看下去也没有什么帮助
我猜测这个思路是你看的题解,但实现中出现了很多的问题
这个建议或许有些刻薄,但是我看到了“尚未学会走路时尝试奔跑”。或许你应当考虑从简单题开始
最后,下次请使用pastebin( ´_ゝ`)
*没有人*会想看非等宽无高亮还分成两部分的代码的,更别说肉眼debug了