File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * Leetcode, #594
3
+ *
4
+ * We define a harmounious array as an array where the difference between its
5
+ * maximum value and its minimum value is exactly 1.
6
+ *
7
+ * Now, given an integer array, you need to find the length of its longest
8
+ * harmonious subsequence among all its possible subsequences.
9
+ *
10
+ * Constraints:
11
+ * 1. The length of the input array will not exceed 20,000.
12
+ */
13
+
14
+ /**
15
+ * @param {number[] } nums
16
+ * @return {number }
17
+ */
18
+ function findLHS ( nums ) {
19
+ let longest = 0 ;
20
+ if ( nums . length > 1 ) {
21
+ const map = new Map ( ) ;
22
+ nums . forEach ( number => {
23
+ const cValue = map . has ( number ) ? map . get ( number ) + 1 : 1 ;
24
+ map . set ( number , cValue ) ;
25
+ if ( map . has ( number + 1 ) ) {
26
+ longest = Math . max ( longest , cValue + map . get ( number + 1 ) ) ;
27
+ }
28
+ if ( map . has ( number - 1 ) ) {
29
+ longest = Math . max ( longest , cValue + map . get ( number - 1 ) ) ;
30
+ }
31
+ } ) ;
32
+ }
33
+ return longest ;
34
+ } ;
You can’t perform that action at this time.
0 commit comments