按键持续时间最长的键
题目:LeetCode设计了一款新式键盘,正在测试其可用性。测试人员将会点击一系列键(总计 n个),每次一个。给你一个长度为n的字符串keysPressed ,其中keysPressed[i]表示测试序列中第i个被按下的键。releaseTimes是一个升序排列的列表,其中releaseTimes[i]表示松开第i个键的时间。字符串和数组的 下标都从0开始 。第0个键在时间为0时被按下,接下来每个键都恰好在前一个键松开时被按下。测试人员想要找出按键持续时间最长的键。第i次按键的持续时间为 releaseTimes[i] - releaseTimes[i - 1] ,第 0 次按键的持续时间为releaseTimes[0] 。注意,测试期间,同一个键可以在不同时刻被多次按下,而每次的持续时间都可能不同。请返回按键 持续时间最长的键,如果有多个这样的键,则返回按字母顺序排列最大的那个键。
输入:releaseTimes = [9,29,49,50], keysPressed = “cbcd”
输出:“c”
方法一:遍历
class Solution {
public char slowestKey(int[] releaseTimes, String keysPressed) {
char max = keysPressed.charAt(0);
int cur = releaseTimes[0];
for(int i = 1; i < releaseTimes.length; i++){
if(releaseTimes[i] - releaseTimes[i - 1] >= cur){
if(releaseTimes[i] - releaseTimes[i - 1] == cur && keysPressed.charAt(i) < max){
}else max = keysPressed.charAt(i);
cur = releaseTimes[i] - releaseTimes[i - 1];
}
}
return max;
}
}