BackmediumStackAmazon

Valid Subsequence Verification Solution

Problem Statement

Given two arrays, determine if one array representing a sequence of ingredients is a valid subsequence of another array representing a recipe.

Example 1
Input
[4, 3, 2], [1, 2, 3, 4]
Output
true

Explanation: Step-by-step: with input [4, 3, 2], we push elements from the recipe array [1, 2, 3, 4] into the stack. When we encounter 4 in the sequence array, we pop elements from the stack until we find a match. We repeat this process until we find all elements from the sequence array in the correct order, giving output true.

Example 2
Input
[1, 3], [1, 2, 3, 4]
Output
true

Explanation: Step-by-step: with input [1, 3], we push elements from the recipe array [1, 2, 3, 4] into the stack. When we encounter 1 in the sequence array, we pop elements from the stack until we find a match. We repeat this process until we find all elements from the sequence array in the correct order, giving output true.

Constraints

  • 1 <= sequence length <= 100
  • 1 <= recipe length <= 500
Live Compiler1 Free Run Available
Loading Editor...
Test Cases & Output
Click "Run" to test your 1 free compile trial!

šŸš€ Practice this problem

Run code, get AI hints & track streak

Sign Up Free

Valid Subsequence Verification — Problem Statement & Solution Guide

StackMediumMixed
TimeO(n)
|
SpaceO(n)

Problem Description

Given two arrays, determine if one array representing a sequence of ingredients is a valid subsequence of another array representing a recipe.

Examples

Example 1

Input

[4, 3, 2], [1, 2, 3, 4]

Output

true

Explanation: Step-by-step: with input [4, 3, 2], we push elements from the recipe array [1, 2, 3, 4] into the stack. When we encounter 4 in the sequence array, we pop elements from the stack until we find a match. We repeat this process until we find all elements from the sequence array in the correct order, giving output true.

Example 2

Input

[1, 3], [1, 2, 3, 4]

Output

true

Explanation: Step-by-step: with input [1, 3], we push elements from the recipe array [1, 2, 3, 4] into the stack. When we encounter 1 in the sequence array, we pop elements from the stack until we find a match. We repeat this process until we find all elements from the sequence array in the correct order, giving output true.

Constraints

  • 1 <= sequence length <= 100
  • 1 <= recipe length <= 500

Optimal Approach & Strategy

The optimal approach involves using a stack data structure to keep track of the sequence elements that have been found in the recipe array so far, resulting in a time complexity of O(n). This approach is efficient and should be used to solve the problem.

Brute Force Approach

The brute-force approach involves iterating through the recipe array for each ingredient in the sequence, resulting in a time complexity of O(n²). This approach is inefficient and should be avoided. It can be implemented using nested loops to check for the presence of each ingredient in the sequence.

Asked in Top Tech Interviews

Amazon

Solve in Interative Editor

Ready to test your code? Open our built-in compiler, run custom test suites, and see detailed complexity analysis reports instantly.