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

2021-10-05 03:36:40 字數 1120 閱讀 3308

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

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

如果有多個年份生存人數相同且均為最大值,輸出其中最小的年份。

示例:0 < birth.length == death.length <= 10000

birth[i] <= death[i]

int

maxaliveyear

(int

* birth,

int birthsize,

int* death,

int deathsize)

;//1900-2000是101年

int i,j,tmp=0;

for(i=

0;i)for

(j=birth[i]

;j<=death[i]

;j++

) year[j-

1900]++

;for

(i=1

;i<

101;i++)if

(year[tmp]

) tmp=i;

return tmp+

1900

;}

還有時間複雜度為n的,讓我自己想是絕對想不出來的,**如下:

int

maxaliveyear

(int

* birth,

int birthsize,

int* death,

int deathsize)

;//多了乙個是因為後續判斷有乙個加一

int i,j,tmp=

0,max=0;

for(i=

0;i)for

(i=0

;i<

101;i++)}

return j+

1900

;}

面試題 16 10 生存人數

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

力扣 面試16 10 生存人數

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

C語言面試題

基礎篇 1 區域性變數能否和全域性變數重名?可以2 如何引用乙個已經定義過的全域性變數?直接呼叫並初始化 3 全域性變數可不可以定義在可被多個.c檔案包含的標頭檔案中?為什麼?可以,6 堆和棧有什麼區別?7 什麼是預編譯,何時需要預編譯 8 c和c 中的struct有什麼不同?9 memset me...