5894. 至少在两个数组中出现的值
数据量才100,直接暴力
class Solution:
def twoOutOfThree(self, nums1: List[int], nums2: List[int], nums3: List[int]) -> List[int]:
cnt1,cnt2,cnt3=Counter(nums1),Counter(nums2),Counter(nums3)
seq=set(nums1+nums2+nums3)
res=[]
for s in seq:
if (cnt1[s]>0)+(cnt2[s]>0)+(cnt3[s]>0)>=2:
res.append(s)
return res
5895. 获取单值网格的最小操作数
先转化成一维数组方便处理,找中位数
class Solution:
def minOperations(self, grid: List[List[int]], x: int) -> int:
seq=[i for x in grid for i in x]
seq.sort()
n=len(seq)
mid=seq[n//2]
res=0
for s in seq:
if (mid-s)%x!=0:
return -1
res+=abs(mid-s)//x
return res
5896. 股票价格波动
SortedList,SortedDict,红黑树,相当于Java里的
TreeSet
,不属于标准库,但力扣可以使用
from sortedcontainers import SortedList,SortedDict
class StockPrice:
·
def __init__(self):
self.time=SortedDict()
self.price=SortedList()
def update(self, timestamp: int, price: int) -> None:
if timestamp in self.time:
tmp=self.time[timestamp]
self.price.discard(tmp)
self.time[timestamp]=price
self.price.add(price)
def current(self) -> int:
tmp=self.time.peekitem(-1)
return tmp[-1]
def maximum(self) -> int:
return self.price[-1]
def minimum(self) -> int:
return self.price[0]
# Your StockPrice object will be instantiated and called as such:
# obj = StockPrice()
# obj.update(timestamp,price)
# param_2 = obj.current()
# param_3 = obj.maximum()
# param_4 = obj.minimum()