# Solving Leetcode Interviews in Seconds with AI: Longest Harmonious Subsequence


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "594" 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
	> We define a harmonious array as an array where the difference between its maximum value and its minimum value is exactly 1. Given an integer array nums, return the length of its longest harmonious subsequence among all its possible subsequences.   Example 1:  Input: nums = [1,3,2,2,5,2,3,7] Output: 5 Explanation: The longest harmonious subsequence is [3,2,2,2,3].  Example 2:  Input: nums = [1,2,3,4] Output: 2 Explanation: The longest harmonious subsequences are [1,2], [2,3], and [3,4], all of which have a length of 2.  Example 3:  Input: nums = [1,1,1,1] Output: 0 Explanation: No harmonic subsequence exists.    Constraints:  1 <= nums.length <= 2 * 104 -109 <= nums[i] <= 109  

	# Explanation
	Here's the breakdown of the approach, complexities, and Python code:

*   **High-Level Approach:**
    *   Use a hash map (dictionary in Python) to store the frequency of each number in the input array.
    *   Iterate through the hash map. For each number, check if its adjacent number (number + 1) also exists in the hash map.
    *   If both the number and its adjacent number exist, calculate the sum of their frequencies. Keep track of the maximum sum encountered so far, which represents the length of the longest harmonious subsequence.

*   **Complexity:**
    *   Runtime Complexity: O(N), where N is the length of the input array.
    *   Storage Complexity: O(N) in the worst case, to store the frequency map.

	
	# Code
	```python
	def findLHS(nums):
    """
    Finds the length of the longest harmonious subsequence in an array.

    Args:
        nums: A list of integers.

    Returns:
        The length of the longest harmonious subsequence.
    """

    freq_map = {}
    for num in nums:
        freq_map[num] = freq_map.get(num, 0) + 1

    max_len = 0
    for num in freq_map:
        if num + 1 in freq_map:
            max_len = max(max_len, freq_map[num] + freq_map[num + 1])

    return max_len
	```
			
