2034. 股票价格波动
这个题关于最大最小值的输出 可以使用一个 大根堆和小跟堆来做,但是今天学到一个 SortedList 实在好用
对于更新 在 time 字典维护不同时间对于的price
同时维护一个最大时间,
soredlist 用来维护 现有的价钱的排序
from sortedcontainers import SortedList
class StockPrice:
def __init__(self):
self.lis = SortedList()
self.time = {}
self.now = 0
def update(self, timestamp: int, price: int) -> None:
if timestamp in self.time:
self.lis.remove(self.time[timestamp])
self.time[timestamp] = price
self.lis.add(price)
self.now = max(self.now,timestamp)
def current(self) -> int:
return self.time[self.now]
def maximum(self) -> int:
return self.lis[-1]
def minimum(self) -> int:
return self.lis[0]
1974. 使用特殊打字机键入单词的最少时间
这个 判断 字母距离 上一个字母的距离 大于13则反过来走
class Solution:
def minTimeToType(self, word: str) -> int:
last = 'a'
res = 0
for i in word:
now = abs(ord(i) -ord(last))
if now >13:
now = 26-now
res +=now+1
last = i
return res