BackmediumTwo PointersFlipkartZomato

Minimum Component Subset Solution

Problem Statement

Given a list of integers representing available components and a set of distinct integers representing required components, determine the minimum length of a contiguous subarray that contains all required components. If no such subarray exists, return -1.

Example 1
Input
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Output
20

Explanation: Step-by-step: with input [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], we find the minimum length subarray that contains all required components. The required components are all present in the first 10 elements, but the minimum length subarray that contains all required components is actually the entire array with a length of 20.

Example 2
Input
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Output
10

Explanation: Step-by-step: with input [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], we find the minimum length subarray that contains all required components. The required components are all present in the first 10 elements, so the minimum length subarray that contains all required components is the entire array with a length of 10.

Constraints

  • 1 <= length of ingredients list <= 1000
  • 1 <= number of required components <= 100
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

Minimum Component Subset — Problem Statement & Solution Guide

Two PointersMediumMixed
TimeO(n)
|
SpaceO(1)

Problem Description

Given a list of integers representing available components and a set of distinct integers representing required components, determine the minimum length of a contiguous subarray that contains all required components. If no such subarray exists, return -1.

Examples

Example 1

Input

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Output

20

Explanation: Step-by-step: with input [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], we find the minimum length subarray that contains all required components. The required components are all present in the first 10 elements, but the minimum length subarray that contains all required components is actually the entire array with a length of 20.

Example 2

Input

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Output

10

Explanation: Step-by-step: with input [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], we find the minimum length subarray that contains all required components. The required components are all present in the first 10 elements, so the minimum length subarray that contains all required components is the entire array with a length of 10.

Constraints

  • 1 <= length of ingredients list <= 1000
  • 1 <= number of required components <= 100

Optimal Approach & Strategy

The optimal approach involves sorting the ingredients list and required components list, then using two pointers to track the current position in each list and find the minimum window that satisfies the given conditions, resulting in a time complexity of O(n log n).

Brute Force Approach

A naive approach would involve generating all possible subsets of the ingredients list and checking each subset to see if it contains all required components, resulting in a time complexity of O(2^n).

Asked in Top Tech Interviews

FlipkartZomato

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.