LeetCode周赛212 : 5546. 按键持续时间最长的键
- 用数组记录每个字符持续时间的最大值
- 通过遍历数组 >> 找出持续时间的最大值,根据最大值对应的 下标 + ‘a’ 翻译出当前字母 ans。
public char slowestKey(int[] releaseTimes, String keysPressed) {
// 仅由英文小写字母组成, 使用数组去记录每个字符最大的持续时间
int[] arr = new int[26];
arr[keysPressed.charAt(0) - 'a'] = releaseTimes[0];
for (int i = 1; i < releaseTimes.length; i++) {
int index = keysPressed.charAt(i) - 'a';
arr[index] = Math.max(releaseTimes[i] - releaseTimes[i - 1], arr[index]);
}
char ans = 'a';
int mx = 0;
for (int i = 0; i < 26; i++) {
// 找到最大持续时间的同时记录该char字符
if(mx <= arr[i]){
// 因为 i 从 0 - 26,即char从a - z, 所以遇到大的就直接 覆盖之前的 ans
mx = arr[i];
ans = (char) (i + 'a');
}
}
return ans;
}