哈希表+排序
<?php
class Solution
{
/**
* @param String[] $keyName
* @param String[] $keyTime
* @return String[]
*/
function alertNames(array $keyName, array $keyTime):array
{
$timeMap = [];
$res = [];
foreach ($keyName as $k => $name) {
$time = explode(':', $keyTime[$k]);
$time = $time[0] * 60 + $time[1];
$timeMap[$name][] = $time;
}
foreach ($timeMap as $name => $v) {
sort($v);
$len = count($v);
if ($len < 3) {
continue;
}
for ($i = 2; $i < $len; $i++) {
if ($v[$i] - $v[$i-2] <= 60) {
$res[] = $name;
break;
}
}
}
sort($res);
return $res;
}
}
$Solution = new Solution();
var_dump($Solution->alertNames(["alice","alice","alice","bob","bob","bob","bob"],["12:01","12:00","18:00","21:00","21:20","21:30","23:00"]));