>按键持续时间最长的键<
>slowestKey<
一、解题思路
1、解法一( Java )
解法思路: 从 1
开始遍历其余的按键,对于每个按键,当以下两个条件之一成立时,使用当前按键更新按键持续的最长时间和对应的按键:
- 当前按键持续时间大于按键持续的最长时间;
- 当前按键持续时间等于按键持续的最长时间且当前按键大于按键持续时间最长的键。
代码如下:
/**
* @author Authority
* @date 2022-1-9
* 1629. 按键持续时间最长的键 slowestKey
*/
public class Solution {
public char slowestKey(int[] releaseTimes, String keysPressed) {
char ans =keysPressed.charAt(0);
int maxTime=releaseTimes[0];
for (int i = 1; i < releaseTimes.length; i++) {
char key=keysPressed.charAt(i);
int time=releaseTimes[i]-releaseTimes[i-1];
if (time>maxTime||(time==maxTime&&key>ans)) {
ans=key;
maxTime=time;
}
}
return ans;
}
}
运行结果截图如下: