# Fruit into Baskets

## Question

You're given an array of integers that represent a single line of trees with one fruit, where each integer value represents the type of fruit.

Your objective is to collect as much fruit as possible while following these conditions:

- You can only pick fruit starting from left to right
- You only have two baskets to hold two different types of fruits
- When you reach a third type of fruit that can't be put into your baskets, you must stop picking altogether
- There is no limit to the amount of fruit each basket can hold

Return the maximum number of fruit you can pick.

Input: `[1, 0, 2, 2, 1, 2]`

Output: `4`

We can pick from trees [2, 2, 1, 2]. If we had started at the first tree, we would only pick from trees [1, 0]. If we had started at the second tree, we would only pick from trees [0, 2, 2].

Input: `[1, 2, 1]`

Output: `3`

We can pick from all three trees.

Input: `[2, 4, 3, 4, 4]`

Output: `4`

We can pick from trees [4, 3, 4, 4]. If we had started at the first tree, we would only pick from trees [2, 4].

## Clarify the problem

What are some questions you'd ask an interviewer?

## Understand the problem

Login or signup to save your code.

## Uh oh... looks like you don't yet have access.

Not sure what this unlocks? Check out a free pattern section.