LeetCode #1629. Slowest Key

Posted 老鼠司令

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode #1629. Slowest Key相关的知识,希望对你有一定的参考价值。

题目

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. Slowest Key

Leetcode 1629. Slowest Key

1629. 按键持续时间最长的键

LeetCode 1629 按键持续时间最长的按键[遍历] HERODING的LeetCode之路

leetcode 1月9日每日一题 1629. 按键持续时间最长的键

leetcode 1月9日每日一题 1629. 按键持续时间最长的键