题解 | #牧场奶牛集合区域#
牧场奶牛集合区域
https://www.nowcoder.com/practice/89218acf98234315af1cb3a223935318?tpId=354&tqId=10589478&ru=/exam/oj/ta&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D354
知识点:简单模拟
解题思路:
用一个start来表示一个区域的开始,然后遍历数组,当 当前位置不等于前一个位置+1的时候,就说明进入了一个新的区域,就将前面一个区域存入res,同时更新新区域的start,由于更新是具有延后性的,所以在遍历的时候,最后一块区域没办法加进res,需要手动加入。
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param groups int整型一维数组
* @param n int整型
* @return int整型二维数组
*/
func findGatheringAreas( groups []int , n int ) [][]int {
// write code here
res:=[][]int{}
start:=0
for i,v:=range groups{
if i!=0{
if groups[i-1]+1!=v{
res = append(res, []int{groups[start],groups[i-1]})
start=i
}
}
}
res = append(res, []int{groups[start],groups[n-1]})
return res
}

