# Have you come across these questions while practising to code?

❓ Given an array of integers that might contain duplicates, return all possible **subsets**.

Try the Question here ⬅️

❓ Given two sequences, find the length of the longest **subsequence** present in both of them. Both the strings are of uppercase.

Try the Question here ⬅️

❓ Find out the maximum **sub-array** of non-negative numbers from an array.

Try the Question here ⬅️

*If you want to attempt these questions, you should know the difference between Subset, Subsequence, and Subarray.*

Let us understand these 3 terms using a simple example.

Suppose we are given an array of numbers, **{10,20,30,40,50}**, we need to find: Subset, subsequence, and subarray.

# Subarray:

A subarray is a contiguous sequence in an array.

{10,20,30} ✅

{10,20} ✅

{10,30} ❌

# Subsequence:

A subsequence is a set of elements not necessarily contiguous but should maintain order.

{10,20,30} ✅

{10,30} ✅

{10,40,30} ❌

# Subset:

A subset is a subsequence, except it also includes an empty set {}.

{10,20,30} ✅

{10,40} ✅

{} ✅

**FACT: All subsets are subsequences, and all subsequences are subsets!**

Now you'll never confuse these terms!

Keep learning! Keep growing! 💖

## Discussion