力扣第 262 场周赛

5894. 至少在两个数组中出现的值

数据量才100,直接暴力

1
2
3
4
5
6
7
8
9
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. 获取单值网格的最小操作数

先转化成一维数组方便处理,找中位数

1
2
3
4
5
6
7
8
9
10
11
12
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,不属于标准库,但力扣可以使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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()
不要打赏,只求关注呀QAQ