YEAHUB_PHP_BACKEND Telegram 193
#ЛитКод
Задача: 713. Subarray Product Less Than K

Если задан массив целых чисел nums и целое число k, верните количество смежных подмассивов, в которых произведение всех элементов в подмассиве строго меньше k.

Пример:
Input: nums = [10,5,2,6], k = 100
Output: 8


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

1⃣Инициализируйте переменные для отслеживания текущего произведения и количества допустимых подмассивов. Используйте два указателя для границ подмассива.

2⃣Перемещайте правый указатель по массиву и умножайте текущий элемент на текущее произведение. Если произведение становится больше или равно k, перемещайте левый указатель, уменьшая произведение до тех пор, пока оно снова не станет меньше k.

3⃣Подсчитайте количество подмассивов с текущим правым указателем, добавив к общему количеству допустимых подмассивов разницу между правым и левым указателями.

😎 Решение:
function numSubarrayProductLessThanK($nums, $k) {
if ($k <= 1) return 0;
$product = 1;
$count = 0;
$left = 0;
for ($right = 0; $right < count($nums); $right++) {
$product *= $nums[$right];
while ($product >= $k) {
$product /= $nums[$left];
$left++;
}
$count += $right - $left + 1;
}
return $count;
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM



tgoop.com/yeahub_php_backend/193
Create:
Last Update:

#ЛитКод
Задача: 713. Subarray Product Less Than K

Если задан массив целых чисел nums и целое число k, верните количество смежных подмассивов, в которых произведение всех элементов в подмассиве строго меньше k.

Пример:

Input: nums = [10,5,2,6], k = 100
Output: 8


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

1⃣Инициализируйте переменные для отслеживания текущего произведения и количества допустимых подмассивов. Используйте два указателя для границ подмассива.

2⃣Перемещайте правый указатель по массиву и умножайте текущий элемент на текущее произведение. Если произведение становится больше или равно k, перемещайте левый указатель, уменьшая произведение до тех пор, пока оно снова не станет меньше k.

3⃣Подсчитайте количество подмассивов с текущим правым указателем, добавив к общему количеству допустимых подмассивов разницу между правым и левым указателями.

😎 Решение:
function numSubarrayProductLessThanK($nums, $k) {
if ($k <= 1) return 0;
$product = 1;
$count = 0;
$left = 0;
for ($right = 0; $right < count($nums); $right++) {
$product *= $nums[$right];
while ($product >= $k) {
$product /= $nums[$left];
$left++;
}
$count += $right - $left + 1;
}
return $count;
}


👉Новости 👉База вопросов

BY PHP Backend | YeaHub


Share with your friend now:
tgoop.com/yeahub_php_backend/193

View MORE
Open in Telegram


Telegram News

Date: |

Judge Hui described Ng as inciting others to “commit a massacre” with three posts teaching people to make “toxic chlorine gas bombs,” target police stations, police quarters and the city’s metro stations. This offence was “rather serious,” the court said. You can invite up to 200 people from your contacts to join your channel as the next step. Select the users you want to add and click “Invite.” You can skip this step altogether. Telegram Channels requirements & features Telegram users themselves will be able to flag and report potentially false content. Read now
from us


Telegram PHP Backend | YeaHub
FROM American