1、先按照startday進行排序,得到開始時間從早到晚的陣列排列。
2、接著將startday相等的會議加入優先佇列,彈出結束時間最早的會議。相同時間,結束時間最早的會議優先出列。
class
solution})
; priorityqueue
queue =
newpriorityqueue
<
>()
;int day =
0, id =
0, n = events.length, res =0;
while
(id < n ||
!queue.
isempty()
)// 將dayday中否合要求的值新增進去
while
(id < n && events[id][0
]<= day)
// 否合要求,day和res都會++,既然最大值都大於等於day,那麼第乙個元素就可以poll
// day++,是因為一天只能參加1場會議
if(queue.
peek()
>= day)
// 不符合要求的元素要poll出去,要不迴圈結束不了
queue.
poll()
;}return res;
}}
每次乙個結束時間僅進出堆一次,加上堆排序的時間和維護堆的時間,時間複雜度為o(nlogn),空間複雜度為o(n)
優先佇列由堆來實現。
最多可以參加的會議數目
一 題目描述 二 題目分析 題解參考 本題的目的是盡可能地多參加會議,而對於每乙個時間點,我們只能參加乙個會議,我們假設現在又兩個會議的起始時間是一樣的,那麼我們應該優先考慮參加那個結束時間早的會議,因為另外乙個會議有更多的時間參加。三 public int maxevents int events...
可以參加的比賽
教育部主辦比賽 全國大學生電子設計大賽 飛思卡爾 杯 全國大學生智慧型汽車競賽acm icpc 國際大學生程式設計競賽 非教育部主辦比賽 adi中國大學創新設計競賽 報名時間 3 4 月份 adi公司 analog devices,inc.紐約 交易所 adi 設立的中國大學創新設計競賽 unive...
參加IBM Rational高峰論壇的會議筆記
1.1.為什麼制定專案開發流程?在我們印象中,每個公司的開發流程不經一致,其次在每個公司的內部,乙個穩定的開發團隊,其開發流程是也不是一致。我們碰到的每個專案,都有不同的開發背景,如行業背景,業務特點,公司的技術知識積累等。這些不同的開發背景導致了,我們的開發團隊在實施每個專案將採取其不同的開發流程...