使用Python寻找最大人口年份的程序
假设我们有一个有两列的表格(出生和死亡),其中每一行都表示第i个人的出生和死亡年份。某一年份y的人口是在y年期间存活的人数。当y在包括[birth_i,death_i-1]的范围内时,第i个人被计算在y年的人口中。(该人在死亡的年份不被计算在内)。 因此,我们必须找到人口最大的最早年份。
因此,如果输入如下所示:
出生 | 死亡 |
---|---|
1970 | 2010 |
1960 | 2020 |
1940 | 1970 |
则输出将为2,因为只有一个值与目标匹配,即nums[4],所以i=4。现在|4-2|= 2。
为了解决这个问题,我们将遵循以下步骤:
- d:=一个映射,如果找不到某个键,则返回0
-
res:=具有两个项目[2051,0]的列表
-
对于矩阵中的每个出生年份YOB和死亡年份YOD,请执行以下操作
- 对于year在YOB到YOD的范围内,执行
- d[year] := d[year] + 1
-
如果d[year]>= res[1],则
-
如果d[year]> res[1],则
- res:=具有两个元素[year,d[year]]的列表
- 否则,
- res:=具有两个元素[year和res[0]的最小值,res[1]]的列表
- 对于year在YOB到YOD的范围内,执行
- 返回res[0]
让我们看看以下实现以获得更好的理解:
更多Python相关文章,请阅读:Python 教程