Skip to main content

Validate Subsequence

Given two non-empty arrays of integers, write a function that determines whether the second array is a subsequence of the first one.

A subsequence of an array is a set of numbers that aren't necessarily adjacent in the array but that are in the same order as they appear in the array. For instance, the numbers [1, 3, 4] form a subsequence of the array [1, 2, 3, 4] , and so do the numbers [2, 4]. Note that a single number in an array and the array itself are both valid subsequences of the array.

Sample Input array = [5, 1, 22, 25, 6, -1, 8, 10] sequence = [1, 6, -1, 10]

Sample Output true

# Solution 1
def isValidSubsequence(array, sequence):
# Write your code here.
j = 0
sequenceLength = len(sequence)
for v in array:
if j == sequenceLength:
break
if v in sequence and sequence[j] == v:
j += 1
return j == sequenceLength
function isValidSubsequence(array, sequence) {
// Write your code here.
let seqIdx = 0;
for (let i = 0; i < array.length; i++) {
if (seqIdx === sequence.length) break;
if (array[i] === sequence[seqIdx]) seqIdx++;
}
return seqIdx === sequence.length;
}