LeetCode 1751. 最多可以参加的会议数目 II(DP + 二分查找)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1751. 最多可以参加的会议数目 II(DP + 二分查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給你一個 events 數組,其中 events[i] = [startDayi, endDayi, valuei] ,表示第 i 個會議在 startDayi 天開始,第 endDayi 天結束,如果你參加這個會議,你能得到價值 valuei 。
同時給你一個整數 k 表示你能參加的最多會議數目。
你同一時間只能參加一個會議。如果你選擇參加某個會議,那么你必須 完整 地參加完這個會議。
會議結束日期是包含在會議內的,也就是說你不能同時參加一個開始日期與另一個結束日期相同的兩個會議。
請你返回能得到的會議價值 最大和 。
示例 1:
示例 2:
示例 3:
輸入:events = [[1,1,1],[2,2,2],[3,3,3],[4,4,4]], k = 3 輸出:9 解釋:盡管會議互不重疊,你只能參加 3 個會議,所以選擇價值最大的 3 個會議。提示: 1 <= k <= events.length 1 <= k * events.length <= 10^6 1 <= startDayi <= endDayi <= 10^9 1 <= valuei <= 10^6來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/maximum-number-of-events-that-can-be-attended-ii
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- dp[i][k] 表示 遍歷完 第 i 個會議,開了k次會,的最大收益
- 按結束時間排序
- 對每個 i 會議,二分查找前面最近的 無干涉的會議 j
- 如果不存在,那么就只能開會議 i
- 如果存在,就從 j 轉移到 i,枚舉 次數
- 還有 i 會議 不參加,就從 i-1 復制過來
1764 ms 238.1 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1751. 最多可以参加的会议数目 II(DP + 二分查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1024. 视频拼接(
- 下一篇: LeetCode 808. 分汤(动态规