package q228 import ( "fmt" "strconv" ) func addToRanges(output []string, a, b int) []string { if a == b { return append(output, strconv.FormatInt(int64(a), 10)) } return append(output, fmt.Sprintf("%d->%d", a, b)) } func summaryRanges(nums []int) []string { if len(nums) == 0 { return nil } output := []string{} l := 0 for r := 1; r < len(nums); r++ { if nums[r]-nums[r-1] != 1 { output = addToRanges(output, nums[l], nums[r-1]) l = r } } output = addToRanges(output, nums[l], nums[len(nums)-1]) return output } var _ = summaryRanges