# [1629. Slowest Key](https://leetcode.com/problems/slowest-key/) ###### tags: `Array`, `String`, `Amazon OA` Description: A newly designed keypad was tested, where a tester pressed a sequence of `n` keys, one at a time. You are given a string `keysPressed` of length n, where `keysPressed[i]` was the ith key pressed in the testing sequence, and a sorted list `releaseTimes`, `where releaseTimes[i]` was the time the ith key was released. Both arrays are **0-indexed**. The 0th key was pressed at the time 0, and every subsequent key was pressed at the **exact** time the previous key was released. The tester wants to know the key of the keypress that had the **longest duration**. The ith keypress had a **duration** of `releaseTimes[i] - releaseTimes[i - 1]`, and the `0th` keypress had a duration of `releaseTimes[0]`. Note that the same key could have been pressed multiple times during the test, and these multiple presses of the same key may not have had the same **duration**. *Return the key of the keypress that had the longest duration. If there are multiple such keypresses, return the lexicographically largest key of the keypresses.* Solution: ```java= class Solution { public char slowestKey(int[] releaseTimes, String keysPressed) { char[] arr = keysPressed.toCharArray(); int max = releaseTimes[0]; char res = arr[0]; for (int i = 1; i < arr.length; i++) { int dur = releaseTimes[i] - releaseTimes[i - 1]; if (max == dur && arr[i] > res) { res = arr[i]; } else if (max < dur) { res = arr[i]; max = dur; } } return res; } } ```