python初學日記 2018 06 19

2021-08-20 20:18:16 字數 2313 閱讀 2298

題目: 

給出乙個區間的集合, 請合併所有重疊的區間。(源自:leecode題庫) 

示例: 

給出 [1,3],[2,6],[8,10],[15,18], 

返回 [1,6],[8,10],[15,18].

思路:首先新建乙個類interval 用來儲存區間 形如【1,3】

其次對給出集合的下限進行排序 按照公升序排列   (這裡選擇較為簡單的氣泡排序)

合併區間。這裡要注意的就是條件的選擇,何時將兩個區間合併為乙個區間,何時又跳過考慮下乙個。最後將合併好的區間輸出。

**如下:

#exercise 1

#first new one class to store intervals just like (1,3)

classinterval(object):

def__init__(self,s=0,e=0):

self.start = s

self.end = e

#second new one class to solve the question

classsolution(object):

#first new one method to bubble the intervals

defbubbles(self,intervals):

foriinrange(0,len(intervals)):

forjinrange(i+1,len(intervals)):

ifintervals[i].start > intervals[j].start:

intervals[i],intervals[j] = intervals[j],intervals[i]

returnintervals

#second merge intervals , print result

defmerge(self,intervals):

iflen(intervals) > 0:

globalstart

globalend

result = #used to store result

result_mark = 0

intervals = self.bubbles(intervals) #sort

whiletrue:

if(result[result_mark][1] >= intervals[0].start)and(result[result_mark][1] <= intervals[0].end):

result[result_mark][1] = intervals[0].end

intervals.pop(0)

iflen(intervals) == 0:

breakelif(result[result_mark][0] <= intervals[0].start)and(result[result_mark][1] >= intervals[0].end):

intervals.pop(0)

iflen(intervals) == 0:

breakelse:

result_mark += 1

intervals.pop(0)

iflen(intervals) == 0: # not need

breakreturnresult

else:

return

solution = solution()

print(solution.merge([interval(1,5),interval(1,2),interval(11,20)]))

html初學日記3

的作用也是引用別人的文字。但它是對長文字的引用,如在文章中引入大段某知名作家的文字,這時需要這個標籤。等等,上一節標籤不是也是對文字的引用嗎?不要忘記標籤是對簡短文字的引用,比如說引用一句話就用到標籤。如想在我的文章中引用李白 關山月 中的詩句,因為引用文字比較長,所以使用 blockquote 語...

Docker 初學日記 1

今天開始使用linux,為了減少專案各個元件的開發周期,使用docker作為中介軟體的執行環境,系統使用opensuse 1.搭建docker 參考 安裝命令如下 curl fssl bash s docker mirror aliyun也可以使用國內 daocloud 一鍵安裝命令 curl ss...

python初學者日記 找完全數

遍歷1 10000,先算出每個數的因數都有哪些,並儲存這些因數,如果這些因數的和等於這個數,那麼列印這個數。同樣是將繁瑣的計算過程交給機器,我們只要結果。找出10000以內的完全數。完全數 乙個正整數等於除它本身以外的所有其他因數之和,那麼這個數就是完全數 如 6 1 2 3 result 方法一 ...