# Solving Leetcode Interviews in Seconds with AI: Best Sightseeing Pair


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "1014" 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 an integer array values where values[i] represents the value of the ith sightseeing spot. Two sightseeing spots i and j have a distance j - i between them. The score of a pair (i < j) of sightseeing spots is values[i] + values[j] + i - j: the sum of the values of the sightseeing spots, minus the distance between them. Return the maximum score of a pair of sightseeing spots.   Example 1:  Input: values = [8,1,5,2,6] Output: 11 Explanation: i = 0, j = 2, values[i] + values[j] + i - j = 8 + 5 + 0 - 2 = 11  Example 2:  Input: values = [1,2] Output: 2    Constraints:  2 <= values.length <= 5 * 104 1 <= values[i] <= 1000  

	# Explanation
	Here's the breakdown of the solution:

*   **Key Idea:** Maximize `values[i] + values[j] + i - j` which can be rearranged as `(values[i] + i) + (values[j] - j)`. Iterate through the `values` array and keep track of the maximum value of `values[i] + i` seen so far.
*   **Dynamic Programming Optimization:** Avoid nested loops by calculating the `values[i] + i `term only once and updating the result and the maximum value in a single pass.
*   **Single Pass:** The whole algorithm works in a single pass and updates max_so_far and result variables efficiently.

*   **Complexity:**
    *   Runtime: O(n)
    *   Storage: O(1)

	
	# Code
	```python
	def max_score_sightseeing_pair(values):
    """
    Finds the maximum score of a pair of sightseeing spots.

    Args:
        values: An array of integers representing the value of each sightseeing spot.

    Returns:
        The maximum score of a pair of sightseeing spots.
    """

    max_so_far = values[0] + 0  # Initialize with the first spot's value + index
    result = float('-inf')

    for j in range(1, len(values)):
        result = max(result, max_so_far + values[j] - j)
        max_so_far = max(max_so_far, values[j] + j)

    return result
	```
			
