TGViewer
PHP | LeetCode PHP | LeetCode @easy_php_task · 1.33K subscribers
Post #1223 136
Задача: 949. Largest Time for Given Digits
Сложность: medium

Учитывая массив arr из 4 цифр, найдите самое позднее 24-часовое время, которое можно составить, используя каждую цифру ровно один раз. 24-часовое время имеет формат "ЧЧ:ММ", где ЧЧ - от 00 до 23, а ММ - от 00 до 59. Самое раннее 24-часовое время - 00:00, а самое позднее - 23:59. Верните самое позднее 24-часовое время в формате "HH:MM". Если не удается определить действительное время, возвращается пустая строка.

Пример:
Input: arr = [1,2,3,4]
Output: "23:41"


👨‍💻 Алгоритм:

1⃣Перебрать все возможные перестановки массива arr.

2⃣Проверить каждую перестановку, можно ли из нее составить допустимое 24-часовое время.
Найти самое позднее допустимое время среди всех перестановок.

3⃣Алгоритм
Перебрать все возможные перестановки массива arr.
Проверить каждую перестановку, можно ли из нее составить допустимое 24-часовое время.
Найти самое позднее допустимое время среди всех перестановок.
Вернуть найденное время в формате "HH
". Если допустимое время не найдено, вернуть пустую строку.

😎 Решение:
function largestTimeFromDigits($arr) {
sort($arr);
$maxTime = -1;

do {
$hours = $arr[0] * 10 + $arr[1];
$minutes = $arr[2] * 10 + $arr[3];
if ($hours < 24 && $minutes < 60) {
$maxTime = max($maxTime, $hours * 60 + $minutes);
}
} while (next_permutation($arr));

if ($maxTime == -1) {
return "";
}

return sprintf("%02d:%02d", $maxTime / 60, $maxTime % 60);
}

function next_permutation(&$arr) {
$n = count($arr);
for ($i = $n - 2; $i >= 0; $i--) {
if ($arr[$i] < $arr[$i + 1]) {
for ($j = $n - 1; $j > $i; $j--) {
if ($arr[$j] > $arr[$i]) {
list($arr[$i], $arr[$j]) = [$arr[$j], $arr[$i]];
$left = array_slice($arr, 0, $i + 1);
$right = array_reverse(array_slice($arr, $i + 1));
$arr = array_merge($left, $right);
return true;
}
}
}
}
return false;
}


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_php_task
  1. Oct 13, 2026Задача: 899. Orderly Queue Сложность: hard Вам дана строка s и целое число k. Вы можете вы…
  2. Oct 11, 2026Задача: 913. Cat and Mouse4 Сложность: hard В игру на неориентированном графе играют два и…
  3. Oct 9, 2026Задача: 71. Simplify Path Сложность: medium Дан абсолютный путь для файловой системы в сти…
  4. Oct 7, 2026🔥 Скрытые вакансии с удаленной работой для PHP разработчика, которые нигде больше не публ…
  5. Oct 6, 2026Задача: 166. Fraction to Recurring Decimal Сложность: medium Даны два целых числа, предста…
  6. Oct 5, 2026Задача: 1024. Video Stitching Сложность: medium Вам дана серия видеоклипов со спортивного…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →