Longest Harmonious Subsequence - Hash Table - Easy - LeetCode
💻 coding

Longest Harmonious Subsequence - Hash Table - Easy - LeetCode

1 min read 160 words
1 min read
ShareWhatsAppPost on X
  • 1A harmonious array has a maximum and minimum value difference of exactly one.
  • 2The longest harmonious subsequence can be found using a hash table to count occurrences.
  • 3The solution has a time complexity of O(n) and a space complexity of O(n).

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"A harmonious array has a maximum and minimum value difference of exactly one."

Longest Harmonious Subsequence - Hash Table - Easy - LeetCode

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.

A subsequence of array is a sequence that can be derived from the array by deleting some or no elements without changing the order of the remaining elements.

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 Example 3:

Input: nums = [1,1,1,1] Output: 0

Constraints:

1 <= nums.length <= 2 * 104 -109 <= nums[i] <= 109

public class Solution {
 public int FindLHS(int[] nums) {
 var map = new Dictionary<int,int>(); 
 for(int i=0;i<nums.Length;i++){
 if(map.ContainsKey(nums[i])){
 map[nums[i]]++;
 }
 else{
 map.Add(nums[i],1); 
 }
 }
 
 int max = 0;
 foreach(var item in map){
 if(map.ContainsKey(item.Key+1)){
 max = Math.Max(max, item.Value+map[item.Key+1]);
 }
 }
 
 return max;
 }
}

Time Complexity: O(n)

Space Complexity: O(n)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 28 September 2020 · 1 min read · 160 words

Part of AskGif Blog · coding

You might also like