又是一道奇怪的题目,我原本的思路是,先求数组中每两个相邻的数之差,得到一个数组。如果这个数组连续出现n次的负值(或正值),则将count加n-1(代表要减去的元素数)。如果这个数组出现了0,则也将将count加1。最后将原数组的size减去count,则得到结果。代码如下:
然而毫无征兆地出现了错误答案,由于错误实例是一个极大的数组,所以根据错误实例我无法得出我代码错误的原因,至今不知为何,希望看出错误的朋友能跟我说一下,谢谢。
于是,我换了另外一种做法。同样使用变量count来记录个数,一开始赋值为1,出现增长(减少)count加1,接下来出现减少(增加)count才加1,以此类推,直到结束。代码如下: