Re: [閒聊] 每日leetcode已回收

看板Marginalman作者 (神楽めあ的錢包)時間1年前 (2024/03/17 11:39), 編輯推噓1(100)
留言1則, 1人參與, 1年前最新討論串53/1548 (看更多)
57. Insert Interval 給一個array:intervals;intervals[i]=[start_i,end_i] intervals是照這start_i的大小由小排到大的 並且intervals中的元素沒有重疊 給一個newInterval要插入intervals中,請回傳新的intervals 思路 : 可以分成3種情況 1.newInterval[0]>intervals[i][1]: 該情況直接將intervals放入新的array就好 2.newInterval[1]<intervals[i][0]: 該請況要去確認newInterval有沒有放入新的array,如果還沒就放進去   並將intervals[i]也放進去 3.newInterval和intervals[i]有重疊 將newInterval[0]替換成比較小的那個、newInterval[1]替換成比較大的那個 golang Code: func insert(intervals [][]int, newInterval []int) [][]int { ans:=make([][]int,0) HasInsert:=false for _,val:=range intervals{ if newInterval[0]>val[1]{ ans=append(ans,val) }else if val[0]>newInterval[1]{ if !HasInsert{ ans=append(ans,newInterval) HasInsert=true } ans=append(ans,val) }else{ if val[0]<newInterval[0]{ newInterval[0]=val[0] } if val[1]>newInterval[1]{ newInterval[1]=val[1] } } } if !HasInsert{ ans=append(ans,newInterval) } return ans } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.7.29 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1710646781.A.EE1.html

03/17 11:59, 1年前 , 1F
大師
03/17 11:59, 1F
文章代碼(AID): #1bzcNzxX (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1bzcNzxX (Marginalman)