题目:
给定一个 无重复元素 的 有序 整数数组 nums 。
返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。
列表中的每个区间范围 [a,b] 应该按如下格式输出:
"a->b" ,如果 a != b
来源:力扣(LeetCode)
链接:leetcode.cn/problems/su…
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
算法:
import "fmt"
func summaryRanges(nums []int) []string {
if len(nums) == 0 {
return nil
}
ans := make([]string, 0)
start, end := nums[0], nums[0]
for i := 1; i < len(nums); i ++ {
if nums[i] == end + 1 {
end = nums[i]
} else {
if start == end {
ans = append(ans, fmt.Sprintf("%d", start))
} else {
ans = append(ans, fmt.Sprintf("%d->%d", start, end))
}
start = nums[i]
end = nums[i]
}
}
if start == end {
ans = append(ans, fmt.Sprintf("%d", start))
} else {
ans = append(ans, fmt.Sprintf("%d->%d", start, end))
}
return ans
}
\