1854. 人口最多的年份

给你一个二维整数数组 logs ,其中每个 logs[i] = [birthi, deathi] 表示第 i 个人的出生和死亡年份。

年份 x 的 人口 定义为这一年期间活着的人的数目。第 i 个人被计入年份 x 的人口需要满足:x 在闭区间 [birthi, deathi - 1] 内。注意,人不应当计入他们死亡当年的人口中。

返回 人口最多 且 最早 的年份。

示例 1:输入:logs = [[1993,1999],[2000,2010]]
输出:1993
解释:人口最多为 1 ,而 1993 是人口为 1 的最早年份。示例 2:输入:logs = [[1950,1961],[1960,1971],[1970,1981]]
输出:1960
解释:
人口最多为 2 ,分别出现在 1960 和 1970 。
其中最早年份是 1960 。

提示:

  • 1 <= logs.length <= 100
  • 1950 <= birthi < deathi <= 2050

解题思路

使用小根堆维护死亡时间的先后次序,再对出生时间进行从小到大的排序,从小到大遍历出生时间,每当遍历到一个时间,就说明在这个时间点上有人出生,因此我们需要把当前的人数加一,当我们发现小根堆里面出现了比当前出生时间还要小的元素,说明了在该人出生之前有人死亡,因此我们需要将这部分人移除出小根堆,并且将当前存活的人数减去。每次遍历出生时间的时候,就统计一遍当前存活的人数,如果当前的人数是目前的最大值,则将人口最多的年份置为遍历到的出生年份。

代码

class Solution {public:int maximumPopulation(vector<vector<int>> &logs) {int m(0),res=-1,idx=-1;priority_queue<int,vector<int>,greater<int>> pq;for (auto l:logs)pq.push(l[1]);sort(logs.begin(),logs.end());for(auto l:logs){while (l[0]>=pq.top()){pq.pop();m--;}    m++;if (m>res){res=m;idx=l[0];}}return idx;}
};

解题思路

使用差分数组的思路,因为这题的时间跨度比较小,只有100个年份,因此我们可以记录每个年份增加了人数,哪个年份减少了人数,最后通过遍历所有年份人数的增减,去确定人口最多 且 最早 的年份

代码

class Solution {public:int maximumPopulation(vector<vector<int>> &logs) {int m(0),res=-1,idx=-1;vector<int> v(101);for (auto l:logs){v[l[0]-1950]++;v[l[1]-1950]--;}for (int i = 0; i < 101; ++i) {m+=v[i];if (m>res){res=m;idx=i+1950;}}return idx;}
};

1854. 人口最多的年份相关推荐

  1. LeetCode 1854. 人口最多的年份(差分)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个二维整数数组 logs ,其中每个 logs[i] = [birthi, deathi] 表示第 i 个人的出生和死亡年份. 年份 x 的 人口 ...

  2. 力扣1854. 人口最多的年份(差分)

    class Solution:def maximumPopulation(self, logs: List[List[int]]) -> int:nums = [0]*101for birth, ...

  3. 魔兽最多人的服务器,魔兽世界9.0人口最多的服务器_魔兽世界

    魔兽世界9.0人口下滑严重,奈非天拯救不了魔兽世界 魔兽世界9.0人口下滑严重,奈非天拯救不了魔兽世界 魔兽世界9.0人口下滑严重,奈非天拯救不了魔兽世界 魔兽世界9.0人口下滑严重,奈非天拯救不了魔 ...

  4. 美国加州华裔人口最多的32个城市排名(根据最新统计数字计算)

    美国加州华裔人口最多的32个城市排名(根据最新统计数字计算) 发表于 2018-06-12 21:43 5月22日,经纪人房产网公众号发表了原创文章<美国南加州15个华裔人口比例最高的城市排名& ...

  5. mysql查询人口最多的城市_mysql世界数据库:选择人口最多的国家

    我想选择人口最多的国家.这是我的查询: SELECT continent, name, population FROM country HAVING population = MAX(populati ...

  6. 广州服务器哪个区最多,广州哪个区人口最多?官方数据来了

    5月18日 广州市第七次全国人口普查公报发布 广州市继续保持全省人口 总量第一大市的地位! 下面让我们看图表 从多个纬度详细了解广州人口概况 常住人口: 年均增速高于全国全省 广州市常住人口为1867 ...

  7. 7.3国服人口最多的服务器,实时人口普查#71:恶魔猎手数据实装 成人口最多职业...

    本文来源于178wow,转载请注明出处 且禁止演绎误导造成不良影响! 所有数据来源于大脚反馈的信息,并统计近3个月的活跃人口,并非官方提供,肯定与游戏内实际数据存在一定误差,因此本文主要从比例角度来分 ...

  8. 联盟人口最多的服务器,魔兽世界国服人口普查,人数排名前十个服务器中有四个联盟碾压服...

    原标题:魔兽世界国服人口普查,人数排名前十个服务器中有四个联盟碾压服 魔兽世界国服现阶段阵营人口比例依然在4:6上下徘徊,整个8.0版本暴雪给联盟阵营的诸多福利并没有让更多的部落玩家前往联盟,甚至虚空 ...

  9. 怀旧服1区人口最多的服务器,wow怀旧服服务器人口普查-wow怀旧服服务器人口分布_牛游戏网...

    <魔兽世界怀旧服>哪个服务器人多?在8月27日即将开启魔兽世界怀旧服<魔兽世界:经典旧世>,而在8月13日已经可以开始创建角色了,各个新老公会和知名主播都选择了自己的服务器,那 ...

最新文章

  1. Android深度探索(卷1)HAL与驱动开发第五章总结
  2. 2005年上半年 网络工程师 上下午试卷【附带答案】
  3. 图文解读:5 个刁钻的 String 面试题!
  4. 关于日志文件的一些处理
  5. Django环境搭建
  6. 02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法
  7. 使用Visual Studio Code调试.net控制台应用程序的方法
  8. 监听浏览器返回上一页
  9. 使用异步 I/O 大大提高应用程序的性能(来自IBM)
  10. Java Maven项目打包成可执行jar文件
  11. jQuery基础系列
  12. python字典攻击
  13. 3.6 矩阵秩的其它重要关系
  14. android 百度输入法表情,百度输入法安卓8.6版本发布,AI输入法成为最懂你的“斗图神器”...
  15. 税务Ukey如何进行批量开票
  16. 计算机病毒445端口,关闭135 445端口_445端口关闭方法_怎么防止电脑中勒索病毒
  17. python爬虫:Scrapy框架爬取纳斯达克(NASDAQ)股票数据
  18. maya导入abc动画_blender布娃娃小女孩从建模到动画全套教程
  19. PhotoScan软件进行无人机数据处理流程
  20. 安全站点导航(感谢backlion整理)

热门文章

  1. C++(静态)(常量)数据进行初始化问题以及静态变量析构
  2. select、poll、epoll 比较
  3. 【计算机组成原理 数字逻辑 Verilog】32位加法器的实现:支持整数的加减运算
  4. 蓝桥单片机赛题及模拟题代码
  5. Java进阶之光!java字符串类型转换为int
  6. Java面试题及答案,mysql可视化工具
  7. CMU Database Systems - Sorting,Aggregation,Join
  8. 萌新向Python数据分析及数据挖掘 第三章 机器学习常用算法 第四节 PCA与梯度上升 (上)理解篇...
  9. python3 递归
  10. windows 删除删除不掉的文件