# Solving Leetcode Interviews in Seconds with AI: Maximum Population Year


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "1854" 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 a 2D integer array logs where each logs[i] = [birthi, deathi] indicates the birth and death years of the ith person. The population of some year x is the number of people alive during that year. The ith person is counted in year x's population if x is in the inclusive range [birthi, deathi - 1]. Note that the person is not counted in the year that they die. Return the earliest year with the maximum population.   Example 1:  Input: logs = [[1993,1999],[2000,2010]] Output: 1993 Explanation: The maximum population is 1, and 1993 is the earliest year with this population.  Example 2:  Input: logs = [[1950,1961],[1960,1971],[1970,1981]] Output: 1960 Explanation:  The maximum population is 2, and it had happened in years 1960 and 1970. The earlier year between them is 1960.   Constraints:  1 <= logs.length <= 100 1950 <= birthi < deathi <= 2050  

	# Explanation
	Here's the breakdown of the solution:

*   **Difference Array:** Use a difference array (or prefix sum technique) to efficiently track population changes over the years. Increment the population count at birth years and decrement at death years.
*   **Prefix Sum:** Calculate the prefix sum of the difference array to obtain the actual population for each year.
*   **Find Maximum:** Iterate through the population array to find the earliest year with the maximum population.

*   **Runtime Complexity:** O(N + R) where N is the number of logs and R is the range of years (2051 - 1950 = 101).  **Storage Complexity:** O(R).

	
	# Code
	```python
	def maximumPopulation(logs):
    """
    Finds the earliest year with the maximum population.

    Args:
        logs: A list of lists, where each inner list represents the birth and death years of a person.

    Returns:
        The earliest year with the maximum population.
    """

    years = [0] * 101  # Years from 1950 to 2050 (inclusive)

    for birth, death in logs:
        years[birth - 1950] += 1
        years[death - 1950] -= 1

    max_population = 0
    max_population_year = 1950
    current_population = 0

    for i in range(101):
        current_population += years[i]
        if current_population > max_population:
            max_population = current_population
            max_population_year = i + 1950

    return max_population_year
	```
			
