动物园的门票售卖处需要一个缓存系统来管理门票信息。请你设计并实现一个满足 LFU(最不经常使用)缓存约束的数据结构。 你需要实现一个类 TicketCache,其中包含以下方法: TicketCache(int capacity):构造方法初始化 LFU 缓存,其中 capacity 是缓存的容量。 int getTicket(int ticketId):如果门票编号 ticketId 存在于缓存中,则返回门票的信息 ticketInfo,否则返回 -1。 void putTicket(int ticketId, int ticketInfo):如果门票编号 ticketId 已经存在于缓存中,则更新门票的信息为 ticketInfo;如果不存在,则向缓存中插入该门票编号和信息。如果插入操作导致缓存中门票数量超过容量 capacity,则应该逐出最不经常使用的门票。 函数 getTicket 和 putTicket 必须以平均时间复杂度 O(1) 运行。
区块链毕设网qklbishe.com为您提供问题的解答
动物园的门票售卖处需要一个缓存系统来管理门票信息。请你设计并实现一个满足 LFU(最不经常使用)缓存约束的数据结构。
你需要实现一个类 TicketCache
,其中包含以下方法:
-
TicketCache(int capacity)
:构造方法初始化 LFU 缓存,其中capacity
是缓存的容量。 -
int getTicket(int ticketId)
:如果门票编号ticketId
存在于缓存中,则返回门票的信息ticketInfo
,否则返回 -1。 -
void putTicket(int ticketId, int ticketInfo)
:如果门票编号ticketId
已经存在于缓存中,则更新门票的信息为ticketInfo
;如果不存在,则向缓存中插入该门票编号和信息。如果插入操作导致缓存中门票数量超过容量capacity
,则应该逐出最不经常使用的门票。 - 函数
getTicket
和putTicket
必须以平均时间复杂度 O(1) 运行。
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param operations string字符串一维数组 * @param data int整型二维数组 * @param capacity int整型 * @return int整型一维数组 */ public int[] performOperation (String[] operations, int[][] data, int capacity) { // write code here long cnt = Arrays.stream(operations).filter(s -> s.equals("getTicket")).count(); TicketCache ticketCache = new TicketCache(capacity); ArrayList<Integer> ret = new ArrayList<>((int) cnt); int count = 0; for (String operation : operations) { if (operation.equals("putTicket")) { int key = data[count][0]; int value = data[count][1]; ticketCache.putTicket(key, value); } else { int key = data[count][0]; ret.add(ticketCache.getTicket(key)); } count++; } int[] retArray = new int[(int) cnt]; for (int i = 0; i < ret.size(); i++) { retArray[i] = ret.get(i); } return retArray; } } class TicketCache { int capacity; Map<Integer, Integer> map = new HashMap<>(capacity); public TicketCache(int capacity) { this.capacity = capacity; } void putTicket(int var1, int var2) { if (capacity==0){ return; } if (map.size() < capacity) { map.put(var1, var2); } else { Iterator<Integer> iterator = map.keySet().stream().iterator(); Integer next = null; while (iterator.hasNext()) { next = iterator.next(); } map.remove(next); map.put(var1, var2); } } int getTicket(int var1) { return map.getOrDefault(var1, -1); } }
23:11
以上就是关于问题动物园的门票售卖处需要一个缓存系统来管理门票信息。请你设计并实现一个满足 LFU(最不经常使用)缓存约束的数据结构。 你需要实现一个类 TicketCache,其中包含以下方法: TicketCache(int capacity):构造方法初始化 LFU 缓存,其中 capacity 是缓存的容量。 int getTicket(int ticketId):如果门票编号 ticketId 存在于缓存中,则返回门票的信息 ticketInfo,否则返回 -1。 void putTicket(int ticketId, int ticketInfo):如果门票编号 ticketId 已经存在于缓存中,则更新门票的信息为 ticketInfo;如果不存在,则向缓存中插入该门票编号和信息。如果插入操作导致缓存中门票数量超过容量 capacity,则应该逐出最不经常使用的门票。 函数 getTicket 和 putTicket 必须以平均时间复杂度 O(1) 运行。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训
从业7年-专注一级市场
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 动物园的门票售卖处需要一个缓存系统来管理门票信息。请你设计并实现一个满足 LFU(最不经常使用)缓存约束的数据结构。 你需要实现一个类 TicketCache,其中包含以下方法: TicketCache(int capacity):构造方法初始化 LFU 缓存,其中 capacity 是缓存的容量。 int getTicket(int ticketId):如果门票编号 ticketId 存在于缓存中,则返回门票的信息 ticketInfo,否则返回 -1。 void putTicket(int ticketId, int ticketInfo):如果门票编号 ticketId 已经存在于缓存中,则更新门票的信息为 ticketInfo;如果不存在,则向缓存中插入该门票编号和信息。如果插入操作导致缓存中门票数量超过容量 capacity,则应该逐出最不经常使用的门票。 函数 getTicket 和 putTicket 必须以平均时间复杂度 O(1) 运行。
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 动物园的门票售卖处需要一个缓存系统来管理门票信息。请你设计并实现一个满足 LFU(最不经常使用)缓存约束的数据结构。 你需要实现一个类 TicketCache,其中包含以下方法: TicketCache(int capacity):构造方法初始化 LFU 缓存,其中 capacity 是缓存的容量。 int getTicket(int ticketId):如果门票编号 ticketId 存在于缓存中,则返回门票的信息 ticketInfo,否则返回 -1。 void putTicket(int ticketId, int ticketInfo):如果门票编号 ticketId 已经存在于缓存中,则更新门票的信息为 ticketInfo;如果不存在,则向缓存中插入该门票编号和信息。如果插入操作导致缓存中门票数量超过容量 capacity,则应该逐出最不经常使用的门票。 函数 getTicket 和 putTicket 必须以平均时间复杂度 O(1) 运行。
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 动物园的门票售卖处需要一个缓存系统来管理门票信息。请你设计并实现一个满足 LFU(最不经常使用)缓存约束的数据结构。 你需要实现一个类 TicketCache,其中包含以下方法: TicketCache(int capacity):构造方法初始化 LFU 缓存,其中 capacity 是缓存的容量。 int getTicket(int ticketId):如果门票编号 ticketId 存在于缓存中,则返回门票的信息 ticketInfo,否则返回 -1。 void putTicket(int ticketId, int ticketInfo):如果门票编号 ticketId 已经存在于缓存中,则更新门票的信息为 ticketInfo;如果不存在,则向缓存中插入该门票编号和信息。如果插入操作导致缓存中门票数量超过容量 capacity,则应该逐出最不经常使用的门票。 函数 getTicket 和 putTicket 必须以平均时间复杂度 O(1) 运行。
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 动物园的门票售卖处需要一个缓存系统来管理门票信息。请你设计并实现一个满足 LFU(最不经常使用)缓存约束的数据结构。 你需要实现一个类 TicketCache,其中包含以下方法: TicketCache(int capacity):构造方法初始化 LFU 缓存,其中 capacity 是缓存的容量。 int getTicket(int ticketId):如果门票编号 ticketId 存在于缓存中,则返回门票的信息 ticketInfo,否则返回 -1。 void putTicket(int ticketId, int ticketInfo):如果门票编号 ticketId 已经存在于缓存中,则更新门票的信息为 ticketInfo;如果不存在,则向缓存中插入该门票编号和信息。如果插入操作导致缓存中门票数量超过容量 capacity,则应该逐出最不经常使用的门票。 函数 getTicket 和 putTicket 必须以平均时间复杂度 O(1) 运行。