生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】253. 会议室 II(Java、偏数学)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
計劃里 hot 100 + 劍指Offer 的題目中唯一一道會員題,同時也是最后一道沒寫的題,剛好今天 leetcode 發了一天會員可以寫上…簡直命運石之門的選擇,感動!
題目描述
- 轉化成上下車問題(好像leetcode 也有原題,不過沒寫到)
- start 就是 上車
- end 就是下車
- 最多會議室,就是【車上最多人數】
思路 && 代碼
- 步驟一:根據 intervals 新建 updown 數組:【時間】【上下車】
- 步驟二:對 updown 數組進行排序(根據時間點進行排序,同一時間則先下車)
- 步驟三:模擬上下車,同時維護【車上最大人數】
class Solution {public int minMeetingRooms(int[][] intervals
) {int n
= intervals
.length
;int[][] updown
= new int[n
* 2][2];for(int i
= 0; i
< 2 * n
; i
+= 2) {updown
[i
][0] = intervals
[i
/ 2][0]; updown
[i
][1] = 1; updown
[i
+ 1][0] = intervals
[i
/ 2][1]; updown
[i
+ 1][1] = -1; }Arrays.sort(updown
, (o1
, o2
) -> (o1
[0] != o2
[0] ? Integer.compare(o1
[0], o2
[0]) : Integer.compare(o1
[1], o2
[1])));int count
= 0;int max
= 0;for(int[] temp
: updown
) {count
+= temp
[1]; max
= Math.max(count
, max
);}return max
;}
}
class Solution {public int minMeetingRooms(int[][] intervals
) {int n
= intervals
.length
;int[][] updown
= new int[n
* 2][2];for(int i
= 0; i
< 2 * n
; i
+= 2) {updown
[i
][0] = intervals
[i
/ 2][0]; updown
[i
][1] = 1; updown
[i
+ 1][0] = intervals
[i
/ 2][1]; updown
[i
+ 1][1] = -1;}Arrays.sort(updown
, (o1
, o2
) -> (o1
[0] != o2
[0] ? Integer.compare(o1
[0], o2
[0]) : Integer.compare(o1
[1], o2
[1])));int count
= 0;int max
= 0;for(int[] temp
: updown
) {count
+= temp
[1]; max
= Math.max(count
, max
);}return max
;}
}
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的【LeetCode笔记】253. 会议室 II(Java、偏数学)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。