# Solving Leetcode Interviews in Seconds with AI: Airplane Seat Assignment Probability


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "1227" 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
	> n passengers board an airplane with exactly n seats. The first passenger has lost the ticket and picks a seat randomly. But after that, the rest of the passengers will:  Take their own seat if it is still available, and Pick other seats randomly when they find their seat occupied  Return the probability that the nth person gets his own seat.   Example 1:  Input: n = 1 Output: 1.00000 Explanation: The first person can only get the first seat. Example 2:  Input: n = 2 Output: 0.50000 Explanation: The second person has a probability of 0.5 to get the second seat (when first person gets the first seat).    Constraints:  1 <= n <= 105  

	# Explanation
	Here's the breakdown of the solution:

*   **Key Insight:** The nth person gets their own seat if and only if either the first person chooses their own seat (the first seat) or the first person chooses the nth person's seat (the nth seat), or the first person chooses seat `k` where `1 < k < n`, and the person assigned to seat `k` ends up choosing either the first or nth seat.

*   **Simplification:** The problem can be simplified to only focus on seat 1 and seat n. If passenger 1 chooses seat 1, then passenger n will get seat n. If passenger 1 chooses seat n, then passenger n will not get seat n. If passenger 1 chooses seat i (1 < i < n), then passenger i will have the same problem with n-i+1 seats.

*   **Base Case and Recursion:** The probability is 0.5 for n > 1. For n = 1 the probability is 1.

*   **Complexity:** O(1) runtime, O(1) storage.

	
	# Code
	```python
	def nthPersonGetsNthSeat(n: int) -> float:
    """
    Calculates the probability that the nth person gets their own seat.

    Args:
        n: The number of passengers and seats.

    Returns:
        The probability that the nth person gets their own seat.
    """
    if n == 1:
        return 1.0
    else:
        return 0.5
	```
			
