Проверка простого решения подпоследовательности с помощью Javascript
Имея 2 непустых массива целых чисел, напишите функцию, которая определяет, является ли второй массив подпоследовательностью первого.
Пример: массив = [5, 1, 22, 25, 6, -1, 8, 10], последовательность = [1, 6, -1, 10];
Вывод: правда
Решение:
function isValidSubsequence(array, sequence) { if(array.length < sequence.length) return false; let j=0; for(let i=0;i<array.length;i++) { if(array[i] === sequence[j]) j++; if(j === sequence.length) break; } return j === sequence.length }
Пояснение кода:
Это решение должно пройти через каждый узел первого массива, чтобы проверить, соответствует ли значение следующему значению второго массива. Переменная j увеличивается каждый раз, когда находит совпадение. Результат оценивает количество раз, когда переменная (j) увеличивается.
Сложность во времени и пространстве:
Максимальное время, необходимое для решения этой задачи, составляет O (N) 1-го массива, и для переменной j требуется 1 дополнительное место.