給定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記錄羊的姓名...