這篇文章主要介紹了golang刷leetcode技巧之如何實(shí)現(xiàn)生存人數(shù)問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)專注于欒城企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),購物商城網(wǎng)站建設(shè)。欒城網(wǎng)站建設(shè)公司,為欒城等地區(qū)提供建站服務(wù)。全流程定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
給定N個人的出生年份和死亡年份,第i
個人的出生年份為birth[i]
,死亡年份為death[i]
,實(shí)現(xiàn)一個方法以計(jì)算生存人數(shù)最多的年份。
你可以假設(shè)所有人都出生于1900年至2000年(含1900和2000)之間。如果一個人在某一年的任意時期都處于生存狀態(tài),那么他們應(yīng)該被納入那一年的統(tǒng)計(jì)中。例如,生于1908年、死于1909年的人應(yīng)當(dāng)被列入1908年和1909年的計(jì)數(shù)。
如果有多個年份生存人數(shù)相同且均為最大值,輸出其中最小的年份。
示例:
輸入:
birth = {1900, 1901, 1950}
death = {1948, 1951, 2000}
輸出: 1901
提示:
0 < birth.length == death.length <= 10000
birth[i] <= death[i]
解題思路
1,這個題目和并行任務(wù)數(shù)是一樣的
2,出生+1,死亡-1
3,關(guān)鍵是繼承上一年的sum[i]+=sum[i-1]
4,注意有個坑,1909年死的人應(yīng)該在1909年還算存活,1910年不算了
代碼實(shí)現(xiàn)
func maxAliveYear(birth []int, death []int) int { sum:=make([]int,102) for i:=0;imax{ max=sum[i] maxIndex=i } } return 1900+maxIndex //1909年死的人應(yīng)該在1909年還算存活,1910年不算了,,沒理解好,所以應(yīng)該是102大小的數(shù)組}
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“golang刷leetcode技巧之如何實(shí)現(xiàn)生存人數(shù)問題”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!