LeetCode 2070. 每一个查询的最大美丽值(离线查询+排序+优先队列)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 2070. 每一个查询的最大美丽值(离线查询+排序+优先队列)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給你一個二維整數數組 items ,其中 items[i] = [pricei, beautyi] 分別表示每一個物品的 價格 和 美麗值 。
同時給你一個下標從 0 開始的整數數組 queries 。對于每個查詢 queries[j] ,你想求出價格小于等于 queries[j] 的物品中,最大的美麗值 是多少。如果不存在符合條件的物品,那么查詢的結果為 0 。
請你返回一個長度與 queries 相同的數組 answer,其中 answer[j]是第 j 個查詢的答案。
示例 1: 輸入:items = [[1,2],[3,2],[2,4],[5,6],[3,5]], queries = [1,2,3,4,5,6] 輸出:[2,4,5,5,6,6] 解釋: - queries[0]=1 ,[1,2] 是唯一價格 <= 1 的物品。所以這個查詢的答案為 2 。 - queries[1]=2 ,符合條件的物品有 [1,2] 和 [2,4] 。它們中的最大美麗值為 4 。 - queries[2]=3 和 queries[3]=4 ,符合條件的物品都為 [1,2] ,[3,2] ,[2,4] 和 [3,5] 。它們中的最大美麗值為 5 。 - queries[4]=5 和 queries[5]=6 ,所有物品都符合條件。所以,答案為所有物品中的最大美麗值,為 6 。示例 2: 輸入:items = [[1,2],[1,2],[1,3],[1,4]], queries = [1] 輸出:[4] 解釋: 每個物品的價格均為 1 ,所以我們選擇最大美麗值 4 。 注意,多個物品可能有相同的價格和美麗值。示例 3: 輸入:items = [[10,1000]], queries = [5] 輸出:[0] 解釋: 沒有物品的價格小于等于 5 ,所以沒有物品可以選擇。 因此,查詢的結果為 0 。提示: 1 <= items.length, queries.length <= 10^5 items[i].length == 2 1 <= pricei, beautyi, queries[j] <= 10^9來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/most-beautiful-item-for-each-query
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 對查詢進行排序,價格小的先查詢,滿足價格要求的,將其美麗值放入優先隊列
- 對物品排序,價格小的先遍歷
336 ms 88.2 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 2070. 每一个查询的最大美丽值(离线查询+排序+优先队列)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode MySQL 1623.
- 下一篇: 使用预训练模型进行句对分类(Paddle