56 合并區(qū)間?
代碼如下
func?merge(intervals?[][]int)?[][]int?{
????????sort.Slice(intervals,func(i,j?int)bool{? //將數(shù)組按左邊界的大小排序
????????return?intervals[i][0]<intervals[j][0]
????})
????res?:=?make([][]int,0) //定義一個目標(biāo)數(shù)組
????res?=?append(res,intervals[0])? //先將數(shù)組的第一個元素加入到目標(biāo)數(shù)組里
????for?i?:=?1?;?i?<?len(intervals)?;?i++?{
????????if?intervals[i][0]?<=?res[len(res)-1][1]?{? //res[len(res)-1][1] ,res[len(res)-1]這個代表res數(shù)組里的最后一個元素,res[len(res)-1][1]表示res數(shù)組里面最后一個元素的右邊界,這個判斷條件是如果當(dāng)前數(shù)組小于等于上一個數(shù)組的右邊界說明兩個數(shù)組重合了
????????????res[len(res)-1][1]?=?max(intervals[i][1],res[len(res)-1][1]) // 進行合并操作,并更新右邊界
????????}else?{
????????????res?=?append(res,intervals[i])? ?//如果沒有重合,則加入這個元素
????????}
????}
????return?res?
}文章來源地址http://www.zghlxwxcb.cn/news/detail-433254.html
func?max(a,b?int)?int?{
????if?a?>?b?{
????????return?a?
????}else?{
????????return?b?
????}
}
738 單調(diào)遞增的數(shù)字
func?monotoneIncreasingDigits(n?int)?int?{
??????????s?:=?strconv.Itoa(n)? //將整數(shù)轉(zhuǎn)換為字符串
??????????ss?:=?[]byte(s)? //將字符串轉(zhuǎn)換為字符
??????????if?len(ss)?<=?1?{
??????????????return?n? //如果這個數(shù)字只有一個數(shù)字直接返回
??????????}
????????flag?:=?-1? ?//設(shè)置flag ,設(shè)置為-1的目的是如果這個數(shù)組本身為單調(diào)遞增的數(shù)組那么就不需要改變flag,否則就要改變flag。而修改的flag的取值是數(shù)組的下標(biāo),所以設(shè)置為-1這個下標(biāo)
??????????for?i?:=?len(ss)-1?;?i?>?0?;?i--?{
??????????????if?ss[i-1]?>?ss[i]?{
????????????????????ss[i-1]?-=?1? //如果這個數(shù)組的當(dāng)前這個數(shù)小于前一個數(shù),那么就要將前一個數(shù)-1,并且記錄當(dāng)前這個數(shù)
????????????????????flag?=?i?
??????????????}
??????????}
????????if?flag?!=?-1?{? ?//如果flag被修改過,則將flag之后的所有數(shù)字變?yōu)??
????????????for?i?:=?flag?;?i?<?len(ss)?;?i++?{
??????????????????ss[i]?=?'9'
??????????}
????????}
??????????
??????????res,?_?:=?strconv.Atoi(string(ss))
??????????return?res?文章來源:http://www.zghlxwxcb.cn/news/detail-433254.html
}
到了這里,關(guān)于代碼隨想錄補打卡 56 合并區(qū)間的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!