联系我
×

1629. 按键持续时间最长的键

查看原题

题解

  1. 在数组的最前面加上一个0,为了更好求出每个按键的时间releaseTimes[i+1] - releaseTimes[i]
  2. 用一个变量记录当前的最大持续时间,一个变量记录对应的按键
  3. 循环不断判断是否有比当前持续时间长的按键,如果有,则更新最长持续时间和对应的按键
  4. 如果和最大持续时间相等,则继续比较按键的大小,如果最新的较大,则更新为对应的按键
  5. 循环结束返回存储的按键

代码

/**
 * @param {number[]} releaseTimes
 * @param {string} keysPressed
 * @return {character}
 */
var slowestKey = function(releaseTimes, keysPressed) {
	releaseTimes.unshift(0)
	maxNum = 0;
	maxKey = null;
	for(let i = 0;i<keysPressed.length;i++){
		if(releaseTimes[i+1] - releaseTimes[i] > maxNum){
			maxNum = releaseTimes[i+1] - releaseTimes[i];
			maxKey = keysPressed.charAt(i);
		}else if(releaseTimes[i+1] - releaseTimes[i] === maxNum){
			if(maxKey.charCodeAt() < keysPressed.charCodeAt(i)){
				maxKey = keysPressed.charAt(i)
			}
		}
	}
	return maxKey;
};
posted @ 2022-01-10 20:06  .筱  阅读(50)  评论(0)    收藏  举报