LeetCode #1629. Slowest Key
Posted 老鼠司令
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode #1629. Slowest Key相关的知识,希望对你有一定的参考价值。
题目
解题方法
遍历数组寻找最长持续时间的键即可,需要注意这里持续时间最长不是累计持续时间,而是每次按下的持续时间。我第一次做的时候以为是累计持续时间,设置了一个字典来统计持续时间了,如果题目改成累计时间用这种方法可以在时空复杂度O(n)内实现。
时间复杂度:O(n)
空间复杂度:O(1)
代码
class Solution:
def slowestKey(self, releaseTimes: List[int], keysPressed: str) -> str:
maxkey = keysPressed[0]
maxtime = releaseTimes[0]
for i in range(1, len(keysPressed)):
if releaseTimes[i] - releaseTimes[i-1] > maxtime:
maxtime = releaseTimes[i] - releaseTimes[i-1]
maxkey = keysPressed[i]
elif releaseTimes[i] - releaseTimes[i-1] == maxtime:
maxkey = max(maxkey, keysPressed[i])
else: pass
return maxkey
以上是关于LeetCode #1629. Slowest Key的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 1629 按键持续时间最长的按键[遍历] HERODING的LeetCode之路