题目

类型:数组
image.png

解题思路

用 rt 来代指 releaseTimes,用 kp 来代指 keysPressed

根据题意,从先往后处理每个 kp[i],计算每次的持续时间(当前结束时间与上次时间的差值)rt[i] - rt[i - 1] ,遍历过程中维护最大持续时间和对应的字符下标。

代码

  1. class Solution {
  2. public char slowestKey(int[] rt, String kp) {
  3. int n = rt.length, idx = 0, max = rt[0];
  4. for (int i = 1; i < n; i++) {
  5. int cur = rt[i] - rt[i - 1];
  6. if (cur > max) {
  7. idx = i; max = cur;
  8. } else if (cur == max && kp.charAt(i) > kp.charAt(idx)) {
  9. idx = i;
  10. }
  11. }
  12. return kp.charAt(idx);
  13. }
  14. }