Рекурсивный разрыв и привлекать к разделению массива на действительные форматы времени HH: MMJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Рекурсивный разрыв и привлекать к разделению массива на действительные форматы времени HH: MM

Сообщение Anonymous »

Мне нужно написать рекурсивную функцию в JavaScript, которая определяет, сколько способов, которыми заданный массив цифр (0-9) может быть разделен на четыре смежных субррея, представляющих действительный формат времени HH: MM. Расщепление должно следовать за подходом divide- and-conquer :
  • Сначала разделение: Разделите массив в две непустые смежные части
    (слева и справа). < /li>
    рекурсивные расщепления < /strong>: далее разделить каждую из этих частей на две
    Непустые смежные Подразделения, в результате чего в общей сложности в четыре
    subarrays.
  • валидация < /strong>: Каждое окончательное разделение должно сформировать достоверное время, когда HH составляет
    00-23 и мм-между 00-59

Пример:

< бренд /> [*] Ввод: [1, 2, 3, 4]

Возможные разделы:
Сначала разделить на индекс 1: [1], [2, 3, 4] → разделить слева (дальше
spls) и прямо на [2], [3, 4]. Результат: 01:23 (недействителен,
с 23, поскольку MM действителен, но 01, как HH в порядке. Подождите, нужно вычислить
фактические действительные комбинации). < /P>
< /li >
Вывод: функция должна вернуть общее количество действительных комбинаций HH: MM
от всех возможных рекурсивных расщеплений. < /p>
< /li>
< /ul>
ограничения < /strong>: < /p>

Входной массив должен иметь не менее 4 элементов. < /li>
Разрушения должны быть смежными и не пустыми на каждом этапе. < /li>
Рекурсия должна следовать методологии разделителя > в две части на каждой Шаг). < /li>
< /ul>
Challenge < /strong>: < /p>

Как Для эффективного отслеживания позиций разделения и проверки времени
без избыточных проверок? РЕЗУЛЬТАТЫ. ">
function countValidTimes(arr) {
// Base case: arr must allow splitting into 4 parts via two splits
if (arr.length < 4) return 0;

// How to structure recursion here?
// Split into left and right, then recursively split each
let total = 0;
for (let i = 1; i < arr.length; i++) {
const left = arr.slice(0, i);
const right = arr.slice(i);
// Now split left and right into two parts each
total += splitAndCount(left) * splitAndCount(right);
}
return total;
}

// Helper function to count splits for a subarray
function splitAndCount(subArr) {
if (subArr.length < 2) return 0;
let count = 0;
for (let j = 1; j < subArr.length; j++) {
const part1 = subArr.slice(0, j);
const part2 = subArr.slice(j);
// Validate if part1 and part2 can form valid HH or MM
// Need to check which part of the time they represent (HH1, HH2, MM1, MM2)
// How to track whether we're in the left or right part of the initial split?
}
return count;
}

< /code>
Проблема:
Текущий подход не отслеживает, является ли подотечка частью сегментов HH или MM, что приводит к неправильной проверке. Как я могу рекурсивно управлять контекстом каждого разделения (то есть, вносит ли он часы или минуты) и правильно агрегировать действительные комбинации? ul>
Как распространить позицию (HH1, HH2, MM1, MM2) через рекурсивные вызовы. Не приводит к тому, что ровно четыре частя. /> Эта проблема требует нюансированной рекурсивной стратегии с отслеживанием контекста. Как это можно эффективно реализовать в JavaScript?

Подробнее здесь: https://stackoverflow.com/questions/794 ... me-formats
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как начинающему веб-разработчику начать привлекать клиентов без предварительного опыта? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как преобразовать композицию с головой: привлекать в привлечение
    Anonymous » » в форуме Android
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Firebase RTDB: лучший подход к разделению доступа к данным
    Anonymous » » в форуме Android
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Firebase RTDB: лучший подход к разделению доступа к данным
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Python, эквивалентный разделению Clojure-все?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Javascript»