LeetCode 56. 合并区间
题目链接:56. 合并区间
题目讲解:代码随想录
func merge(intervals [][]int) [][]int {
res := [][]int{}
if len(intervals) == 0{
return res
}
sort.Slice(intervals, func(i, j int)bool{
return intervals[i][0] < intervals[j][0]
})
res = append(res, intervals[0])
for i := 1; i < len(intervals); i++{
if res[len(res)-1][1] >= intervals[i][0]{ // 发现重叠
res[len(res)-1][1] = max(res[len(res)-1][1], intervals[i][1])
}else{ // 不重叠
res = append(res, intervals[i])
}
}
return res
}
func max(a, b int)int{
if a > b{
return a
}
return b
}
LeetCode 738.单调递增的数字
题目链接:738.单调递增的数字
题目讲解:代码随想录
func monotoneIncreasingDigits(n int) int {
s := strconv.Itoa(n)
ss := []byte(s)
length := len(ss)
if length <= 1{
return n
}
for i := length - 1; i > 0; i--{
if ss[i-1] > ss[i]{
ss[i-1] -= 1
for j := i; j < length; j++{
ss[j] = '9'
}
}
}
res, _ := strconv.Atoi(string(ss))
return res
}