1629. 按鍵持續時間最長的鍵 遍歷兩個陣列
阿新 • • 發佈:2022-01-10
檢視原題
題解
- 在陣列的最前面加上一個0,為了更好求出每個按鍵的時間
releaseTimes[i+1] - releaseTimes[i]
- 用一個變數記錄當前的最大持續時間,一個變數記錄對應的按鍵
- 迴圈不斷判斷是否有比當前持續時間長的按鍵,如果有,則更新最長持續時間和對應的按鍵
- 如果和最大持續時間相等,則繼續比較按鍵的大小,如果最新的較大,則更新為對應的按鍵
- 迴圈結束返回儲存的按鍵
程式碼
/** * @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; };