面試題 16 10 生存人數

2022-06-07 11:42:16 字數 882 閱讀 3243

給定n個人的出生年份和死亡年份,第i個人的出生年份為birth[i],死亡年份為death[i],實現乙個方法以計算生存人數最多的年份。

你可以假設所有人都出生於2023年至2023年(含1900和2000)之間。如果乙個人在某一年的任意時期都處於生存狀態,那麼他們應該被納入那一年的統計中。例如,生於2023年、死於2023年的人應當被列入2023年和2023年的計數。如果有多個年份生存人數相同且均為最大值,輸出其中最小的年份。

示例:輸入:

birth =

death =

輸出: 1901

思路:用乙個字典map存放birth和death出現的最小和最大年份之間的所有年份的生存人數。map的key為年份,value為生存人數。注意map最後要按年份排序,然後返回value最大的key。

class solution:

def maxaliveyear(self, birth: list[int], death: list[int]) -> int:

l_map = {}

for i in range(len(birth)):

for j in range(birth[i],death[i]+1):

if j not in l_map:

l_map[j]=0

l_map[j]+=1

l_items=sorted(l_map.items(),key=lambda item:item[0])

max_year = 1900

max_count = 0

for k,v in l_items:

if v>max_count:

max_count=v

max_year=k

return max_year

面試題 16 10 生存人數(C語言)

給定n個人的出生年份和死亡年份,第i個人的出生年份為birth i 死亡年份為death i 實現乙個方法以計算生存人數最多的年份。你可以假設所有人都出生於1900年至2000年 含1900和2000 之間。如果乙個人在某一年的任意時期都處於生存狀態,那麼他們應該被納入那一年的統計中。例如,生於19...

力扣 面試16 10 生存人數

給定n個人的出生年份和死亡年份,第i個人的出生年份為birth i 死亡年份為death i 實現乙個方法以計算生存人數最多的年份。你可以假設所有人都出生於1900年至2000年 含1900和2000 之間。如果乙個人在某一年的任意時期都處於生存狀態,那麼他們應該被納入那一年的統計中。例如,生於19...

php面試題羊生羊

昨天我去面試,裡面有一道這樣的題目,乙隻母羊,5歲開始生羊一次生一頭,20歲死亡。這邊我們認為只要到了20歲就死亡 20歲的時候就不生羊了 現在從第一年開始有乙隻5歲的模樣求第n年後又幾隻羊。當時我是應為沒看到或這個題目稍稍有點悶,回事面試結束以後想了一想其實特別簡單。用乙個陣列,key記錄羊的姓名...