Skip to content

Latest commit

 

History

History
37 lines (32 loc) · 1.15 KB

File metadata and controls

37 lines (32 loc) · 1.15 KB

LeetCode Records - Question 539 Minimum Time Difference

Attempt 1: Use an ArrayList to store the time values and Arrays.sort() to sort the ArrayList

class Solution {
    public int findMinDifference(List<String> timePoints) {
        List<Integer> list = new ArrayList<>();
        for (String time : timePoints) {
            list.add(getTimeValue(time));
        }
        list.sort(null);

        int prevTime = list.get(0);
        int minTimeDiff = Integer.MAX_VALUE;
        int size = list.size();
        for (int i = 1; i < size; i++) {
            int currTime = list.get(i);
            minTimeDiff = Math.min(minTimeDiff, currTime - prevTime);
            prevTime = currTime;
        }
        minTimeDiff = Math.min(minTimeDiff, 1440 - list.getLast() + list.getFirst());

        return minTimeDiff;
    }

    private int getTimeValue(String time) {
        char[] arr = time.toCharArray();
        int hour = (arr[0] - '0') * 10 + arr[1] - '0';
        int minute = (arr[3] - '0') * 10 + arr[4] - '0';
        return hour * 60 + minute;
    }
}
  • Runtime: 8 ms (Beats: 44.52%)
  • Memory: 45.02 MB (Beats: 84.20%)