又是一道尺取法(双指针)的题,本来以为很快能搞定,没想到被一个小bug卡了十几遍((
方法简而言之就是右指针先移动,直到两指针之间的长度>=总长的一半,停下,判断此处距离最大值;再移动左指针,不断更新距离最大值。

注意事项:
1、为啥wa了这么多次,就是这个原因:虽然c>=s/2,但不代表c>s-c,因为/的运算性质,只保留整数部分,因此还是要用一次min函数判断二者大小关系。
2、因为我开始读入时数据是保存在数组的2~n+1的,所以下面的循环操作中,右指针也应循环到n+1为止。
3、因为当右指针超出n+1时相当于已进入第二圈,情况与左指针前面的情况重合,所以不用考虑。

具体代码:
图片说明