# Solving Leetcode Interviews in Seconds with AI: Fruits Into Baskets III


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "3479" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> You are given two arrays of integers, fruits and baskets, each of length n, where fruits[i] represents the quantity of the ith type of fruit, and baskets[j] represents the capacity of the jth basket. From left to right, place the fruits according to these rules:  Each fruit type must be placed in the leftmost available basket with a capacity greater than or equal to the quantity of that fruit type. Each basket can hold only one type of fruit. If a fruit type cannot be placed in any basket, it remains unplaced.  Return the number of fruit types that remain unplaced after all possible allocations are made.   Example 1:  Input: fruits = [4,2,5], baskets = [3,5,4] Output: 1 Explanation:  fruits[0] = 4 is placed in baskets[1] = 5. fruits[1] = 2 is placed in baskets[0] = 3. fruits[2] = 5 cannot be placed in baskets[2] = 4.  Since one fruit type remains unplaced, we return 1.  Example 2:  Input: fruits = [3,6,1], baskets = [6,4,7] Output: 0 Explanation:  fruits[0] = 3 is placed in baskets[0] = 6. fruits[1] = 6 cannot be placed in baskets[1] = 4 (insufficient capacity) but can be placed in the next available basket, baskets[2] = 7. fruits[2] = 1 is placed in baskets[1] = 4.  Since all fruits are successfully placed, we return 0.    Constraints:  n == fruits.length == baskets.length 1 <= n <= 105 1 <= fruits[i], baskets[i] <= 109  

	# Explanation
	Here's the breakdown of the solution and the code:

*   **High-Level Approach:**
    *   Iterate through the `fruits` array.
    *   For each fruit, iterate through the `baskets` array to find the leftmost available basket with sufficient capacity.
    *   If a suitable basket is found, mark it as occupied and move to the next fruit.

*   **Complexity:**
    *   Runtime Complexity: O(n^2) in the worst case (when no suitable basket is found until the last one)
    *   Storage Complexity: O(n) due to the `occupied` array

	
	# Code
	```python
	def unplaced_fruits(fruits, baskets):
    """
    Calculates the number of fruit types that remain unplaced after allocation.

    Args:
        fruits (list): A list of integers representing the quantity of each fruit type.
        baskets (list): A list of integers representing the capacity of each basket.

    Returns:
        int: The number of fruit types that remain unplaced.
    """
    n = len(fruits)
    occupied = [False] * n  # Keep track of which baskets are occupied
    unplaced_count = 0

    for fruit_qty in fruits:
        placed = False
        for i in range(n):
            if not occupied[i] and baskets[i] >= fruit_qty:
                occupied[i] = True
                placed = True
                break  # Move to the next fruit

        if not placed:
            unplaced_count += 1

    return unplaced_count
	```
			
