Array Algorithm: Validate Subsequence

算法刷题系列 Algorithm


Difficulty:easy

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]

output

ture

Solution 1:
while loop
O(n) time | O(1) space

def isValidSubsequence(array, sequence):
    # Write your code here.
	arrIdx = 0
	seqIdx = 0
	while arrIdx < len(array) and seqIdx < len(sequence):
		if sequence[seqIdx] == array[arrIdx]:
			seqIdx += 1
		arrIdx += 1

	return seqIdx == len(sequence)

Solution 2:
for loop
O(n) time | O(1) space

def isValidSubsequence(array, sequence):
	seqIdx = 0
	for value in array:
		if seqIdx == len(sequence):
			break
		if sequence[seqIdx] == value:
			seqIdx += 1
	return seqIdx == len(sequence)

from AlgoExpert

你可能感兴趣的:(Algorithm,leetcode,algorithm,python)