题目链接:https://www.acwing.com/problem/content/1915/
题解
假设 h 代表+1,g 代表-1,将每头牛按照坐标从小到大排序,那么该问题就转化为了找到一段区间 [l,r] 使该 l 和 r 的前缀和相同,可以用 map 记录第一次出现的最左边的前缀和坐标,当该数再一次出现时可以用 map 求出长度,注意要加一个 map[0],用来特殊判断 G H 这类情况出现。
该题还说明区间内只有一种牛也是可以的,所以用双指针来找一段区间内全部是同种牛的区间长度。
代码
#include
#include
#include
#include