题目
类型:数组
解题思路
用 rt 来代指 releaseTimes,用 kp 来代指 keysPressed
根据题意,从先往后处理每个 kp[i],计算每次的持续时间(当前结束时间与上次时间的差值)rt[i] - rt[i - 1] ,遍历过程中维护最大持续时间和对应的字符下标。
代码
class Solution {
public char slowestKey(int[] rt, String kp) {
int n = rt.length, idx = 0, max = rt[0];
for (int i = 1; i < n; i++) {
int cur = rt[i] - rt[i - 1];
if (cur > max) {
idx = i; max = cur;
} else if (cur == max && kp.charAt(i) > kp.charAt(idx)) {
idx = i;
}
}
return kp.charAt(idx);
}
}