Welcome to Subscribe On Youtube
2224. Minimum Number of Operations to Convert Time
Description
You are given two strings current
and correct
representing two 24hour times.
24hour times are formatted as "HH:MM"
, where HH
is between 00
and 23
, and MM
is between 00
and 59
. The earliest 24hour time is 00:00
, and the latest is 23:59
.
In one operation you can increase the time current
by 1
, 5
, 15
, or 60
minutes. You can perform this operation any number of times.
Return the minimum number of operations needed to convert current
to correct
.
Example 1:
Input: current = "02:30", correct = "04:35" Output: 3 Explanation: We can convert current to correct in 3 operations as follows:  Add 60 minutes to current. current becomes "03:30".  Add 60 minutes to current. current becomes "04:30".  Add 5 minutes to current. current becomes "04:35". It can be proven that it is not possible to convert current to correct in fewer than 3 operations.
Example 2:
Input: current = "11:00", correct = "11:01" Output: 1 Explanation: We only have to add one minute to current, so the minimum number of operations needed is 1.
Constraints:
current
andcorrect
are in the format"HH:MM"
current <= correct
Solutions

class Solution { public int convertTime(String current, String correct) { int a = Integer.parseInt(current.substring(0, 2)) * 60 + Integer.parseInt(current.substring(3)); int b = Integer.parseInt(correct.substring(0, 2)) * 60 + Integer.parseInt(correct.substring(3)); int ans = 0, d = b  a; for (int i : Arrays.asList(60, 15, 5, 1)) { ans += d / i; d %= i; } return ans; } }

class Solution { public: int convertTime(string current, string correct) { int a = stoi(current.substr(0, 2)) * 60 + stoi(current.substr(3, 2)); int b = stoi(correct.substr(0, 2)) * 60 + stoi(correct.substr(3, 2)); int ans = 0, d = b  a; vector<int> inc = {60, 15, 5, 1}; for (int i : inc) { ans += d / i; d %= i; } return ans; } };

class Solution: def convertTime(self, current: str, correct: str) > int: a = int(current[:2]) * 60 + int(current[3:]) b = int(correct[:2]) * 60 + int(correct[3:]) ans, d = 0, b  a for i in [60, 15, 5, 1]: ans += d // i d %= i return ans

func convertTime(current string, correct string) int { parse := func(s string) int { h := int(s[0]'0')*10 + int(s[1]'0') m := int(s[3]'0')*10 + int(s[4]'0') return h*60 + m } a, b := parse(current), parse(correct) ans, d := 0, ba for _, i := range []int{60, 15, 5, 1} { ans += d / i d %= i } return ans }