Button with Longest Push Time

EasyArray

Solution

export function buttonWithLongestTime(events: number[][]): number {
  let longestTime = 0;
  let longestIndex = 0;
  let prevTime = 0;
  for (const [index, time] of events) {
    const currentTime = time - prevTime;
    if (longestTime < currentTime) {
      [longestTime, longestIndex] = [currentTime, index];
    } else if (longestTime === currentTime) {
      longestIndex = Math.min(index, longestIndex);
    }
    prevTime = time;
  }
  return longestIndex;
}

Complexity

  • Time: O(n)O(n)
  • Space: O(1)O(1)