Рубрики
Uncategorized

Решение для PHP с кодом Leetcode — D50 933. Количество последних звонков

Автор оригинала: David Wong.

Ссылка на Заголовок

933. Количество последних звонков

Анализ названия

Я был ослеплен правдивостью предмета.

Возвращает количество пингов (включая текущие пинги) с 3000 миллисекунд.

передача ping Функции, аргументы, переданные в t Это количество миллисекунд, в течение которых выполняется пинг.

размышляющий

Фактически возвращается количество пингов за первые 3000 миллисекунд.

Сохраните миллисекунды каждого пинга, а затем вернитесь, чтобы найти Пинг в течение 3000 миллисекунд.

То есть добавьте 1 к текущему числу пингов, пока текущее количество миллисекунд за вычетом предыдущего числа миллисекунд пинга не превысит 3000.

Окончательный код

php
class RecentCounter {
    public $pings = [];
    public $head = 0;

    function __construct() {
        
    }
    function ping($t) {
        if(is_null($t)){
            return null;
        }
        $this->pings[] = $t;
        
        while(($this->pings[count($this->pings)-1]-$this->pings[$this->head])>3000){
            $this->head++;
        }
        return count($this->pings)-$this->head;
    }
}
/**
 * Your RecentCounter object will be instantiated and called as such:
 * $obj = RecentCounter();
 * $ret_1 = $obj->ping($t);
 */ 

Если вы считаете, что эта статья полезна для вас, вы можете воспользоваться поддержкой генерации энергии ИИ.