1854. 人口最多的年份

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;}
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389678.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389678.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389678.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

snake4444勒索病毒成功處理教程方法工具達康解密金蝶/用友數據庫sql后綴snake4444...

*snake4444勒索病毒成功處理教程方法 案例&#xff1a;筆者負責一個政務系統的第三方公司的運維&#xff0c;上班后發現服務器的所有文件都打不開了&#xff0c;而且每個文件后面都有一個snake4444的后綴&#xff0c;通過網絡我了解到這是一種勒索病毒。因為各個文件不能正常打…

有史以來最漂亮的游戲機

The recent reveal of the PlayStation 5’s design has divided the gaming world. There are those who appreciate its bold, daring industrial design and those who would have preferred something a little less outlandish; perhaps a little more traditional.噸 他最…

springboot-添加攔截器

在我們日常開發的過程中&#xff0c;經常會遇到這一類問題&#xff0c;要求需要用戶登錄以后才能夠訪問其他的內容&#xff0c;否則不行&#xff0c;那么解決這一問題最好的辦法就是運用攔截器&#xff0c;攔截器可以和多種處理請求的web框架結合&#xff0c;今天所講的就是與s…

1945. 字符串轉化后的各位數字之和

1945. 字符串轉化后的各位數字之和 給你一個由小寫字母組成的字符串 s &#xff0c;以及一個整數 k 。 首先&#xff0c;用字母在字母表中的位置替換該字母&#xff0c;將 s 轉化 為一個整數&#xff08;也就是&#xff0c;‘a’ 用 1 替換&#xff0c;‘b’ 用 2 替換&#…

墨刀原型制作 位置選擇_原型制作不再是可選的

墨刀原型制作 位置選擇The ‘role’ of a designer has been a topic of discussion several many years now. In the past decade, the role of a Designer got split into several different roles like — Graphic Designer, User Experience Designer, Interaction Designe…

eclipse maven 構建簡單springmvc項目

環境&#xff1a;eclipse Version: Oxygen.3a Release (4.7.3a) 創建maven Project項目&#xff0c;目錄結構 修改工程的相關編譯屬性 修改pop.xml&#xff0c;引入springmvc相關包 <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.…

1859. 將句子排序

1859. 將句子排序 一個 句子 指的是一個序列的單詞用單個空格連接起來&#xff0c;且開頭和結尾沒有任何空格。每個單詞都只包含小寫或大寫英文字母。 我們可以給一個句子添加 從 1 開始的單詞位置索引 &#xff0c;并且將句子中所有單詞 打亂順序 。 比方說&#xff0c;句子…

醫動力Android基于CC組件化框架的探索與實踐

為什么要組件化? 醫動力App作為公司的核心產品已經有多年歷史了,隨著版本的不斷迭代,功能越來越多,代碼量越來越大,不可避免的會產生一下問題: 業務越來越復雜&#xff0c;維護成本高;業務耦合度高&#xff0c;代碼越來越臃腫&#xff0c;團隊內部多人協作開發困難;編譯時間長…

使用協同過濾推薦電影

ALSO, ARE RECOMMENDER SYSTEMS INFLUENCING OUR TASTE??此外&#xff0c;推薦系統是否影響我們的口味&#xff1f; An excerpt on creating a movie recommender system similar to the OTT platforms.有關創建類似于OTT平臺的電影推薦系統的摘錄。 INTRODUCTION介紹 For…

423. 從英文中重建數字

423. 從英文中重建數字 給你一個字符串 s &#xff0c;其中包含字母順序打亂的用英文單詞表示的若干數字&#xff08;0-9&#xff09;。按 升序 返回原始的數字。 例 1&#xff1a;輸入&#xff1a;s "owoztneoer" 輸出&#xff1a;"012"示例 2&#xf…

錦欣生殖獲戰略投資,華平、信銀領投,紅杉、藥明康德跟投

9月16日消息&#xff0c;錦欣生殖近日宣布已完成新一輪的戰略投資&#xff0c;本輪融資由原戰略股東華平投資及新引入的中信銀行旗下信銀投資領投&#xff0c;紅杉資本中國基金、藥明康德等跟投。完成本輪融資后&#xff0c;華平投資及信銀投資分別成為錦欣生殖的第二及第三大股…

數據暑假實習面試_面試數據科學實習如何準備

數據暑假實習面試Unfortunately, on this occasion, your application was not successful, and we have appointed an applicant who…不幸的是&#xff0c;這一次&#xff0c;您的申請沒有成功&#xff0c;我們已經任命了一位符合以下條件的申請人&#xff1a; Sounds famili…

兩道簡單的入門題

1&#xff09;  for循環求100以內奇數和 1 #include<stdio.h> 2 int main(){ 3 int ans0;//定義一個答案變量存儲答案 4 for(int i1;i<100;i)//用for從1循環到100&#xff0c;如果i%2&#xff01;0&#xff08;%是一種取余運算&#xff09; 5 if(…

1716. 計算力扣銀行的錢

1716. 計算力扣銀行的錢 Hercy 想要為購買第一輛車存錢。他 每天 都往力扣銀行里存錢。 最開始&#xff0c;他在周一的時候存入 1 塊錢。從周二到周日&#xff0c;他每天都比前一天多存入 1 塊錢。在接下來每一個周一&#xff0c;他都會比 前一個周一 多存入 1 塊錢。 給你 …

谷歌 colab_如何在Google Colab上使用熊貓分析

谷歌 colabRecently, pandas have come up with an amazing open-source library called pandas-profiling. Generally, EDA starts by df.describe(), df.info() and etc which to be done separately. Pandas_profiling extends the general data frame report using a singl…

【題解】HAOI2007分割矩陣

水題盛宴啦啦啦……做起來真的極其舒服&#xff0c;比某些毒瘤題好太多了…… 數據范圍極小 --> 狀壓 / 搜索 / 高維度dp&#xff1b;觀察要求的均方差&#xff0c;開始考慮是不是能夠換一下式子。我們用\(a_{x}\)來表示第 \(x\) 個矩陣的總值&#xff0c;則式子為&#xff…

Java之生成Pdf并對Pdf內容操作

雖說網上有很多可以在線導出Pdf或者word或者轉成png等格式的工具&#xff0c;但是我覺得還是得了解知道是怎么實現的。一來&#xff0c;在線免費轉換工具&#xff0c;是有容量限制的&#xff0c;達到一定的容量時&#xff0c;是不能成功導出的;二來&#xff0c;業務需求&#x…

邊際概率條件概率_數據科學家解釋的邊際聯合和條件概率

邊際概率條件概率Probability plays a very important role in Data Science, as Data Scientist regularly attempt to draw statistical inferences that could be used to predict data or analyse data better.P robability起著數據科學非常重要的作用&#xff0c;為數據科…

1822. 數組元素積的符號

1822. 數組元素積的符號 已知函數 signFunc(x) 將會根據 x 的正負返回特定值&#xff1a; 如果 x 是正數&#xff0c;返回 1 。 如果 x 是負數&#xff0c;返回 -1 。 如果 x 是等于 0 &#xff0c;返回 0 。 給你一個整數數組 nums 。令 product 為數組 nums 中所有元素值的…

java并發編程實戰:第十四章----構建自定義的同步工具

一、狀態依賴性管理 對于單線程程序&#xff0c;某個條件為假&#xff0c;那么這個條件將永遠無法成真在并發程序中&#xff0c;基于狀態的條件可能會由于其他線程的操作而改變1 可阻塞的狀態依賴操作的結構2 3 acquire lock on object state4 while (precondition does not ho…