lc-go/solutions/2/q228/solution.go

33 lines
655 B
Go

// Package q228 implements a solution for https://leetcode.com/problems/summary-ranges/
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