To solve this problem, you can use a hash map to count the frequency of each number in the input array. Then, iterate through the keys of the hash map and check if the hash map contains a key that is equal to the current key plus 1. If so, the length of the harmonious subsequence for those two keys is the sum of their frequencies. Keep track of the maximum length seen so far and return it at the end. 

Here's some sample code:

```
def findLHS(nums):
    if not nums:
        return 0
    
    freq = {}
    for num in nums:
        freq[num] = freq.get(num, 0) + 1
        
    max_len = 0
    for key in freq.keys():
        if key + 1 in freq:
            max_len = max(max_len, freq[key] + freq[key+1])
            
    return max_len
```
Definiamo un array armonioso come un array in cui la differenza tra il suo valore massimo e il suo valore minimo è esattamente 1. Dato un array intero nums, restituisce la lunghezza della sua sottosequenza armonica più lunga tra tutte le sue possibili sottosequenze. Una sottosequenza di array è una sequenza che può essere derivata dall'array eliminando alcuni o nessun elemento senza modificare l'ordine degli elementi rimanenti.