MediaGooglehttps://leetcode.com/problems...classStockPrice{//键:时间,值:价格privateMaptimePrice;//key:price,value:frequency,使用treemap,这样可以按照价格从小到大排序,方便直接获取max/minprivateTreeMappriceFreq;私人诠释最新时间;//最新时间publicStockPrice(){timePrice=newHashMap<>();最新时间=0;priceFreq=newTreeMap<>();}publicvoidupdate(inttimestamp,intprice){//更新最新时间,保持latestTime为最新时间戳,调用当前方法时直接从map中获取latestTime=Math.max(latestTime,timestamp);//如果之前保存过时间戳,更新频率表if(timePrice.containsKey(timestamp)){//根据时间戳获取旧价格intoldPrice=timePrice.get(timestamp);//因为已经改了,把频率-1priceFreq.put(oldPrice,priceFreq.get(oldPrice)-1);//如果价格频率变为0,则需要去除价格.get(oldPrice)==0)priceFreq.remove(oldPrice);}//更新两个映射中的新价格timePrice.put(timestamp,price);priceFreq.put(价格,priceFreq.getOrDefault(价格,0)+1);}publicintcurrent(){//根据最新时间直接获取价格returntimePrice.get(latestTime);}publicintmaximum(){//直接从priceFreq获取最后一个最高价returnpriceFreq.lastKey();}publicintminimum(){//直接从priceFreq中取第一个最小的价格returnpriceFreq.firstKey();}}