594. Longest Harmonious Subsequence 最长的和谐子序列

  • Total Accepted: 5540
  • Total Submissions: 14066
  • Difficulty: Easy
  • Contributors:love_Fawn

We define a harmonious array is an array where the difference between its maximum value and its minimum value is exactly 1.

Now, given an integer array, you need to find the length of its longest harmonious subsequence among all its possible subsequences.

Example 1:

Input: [1,3,2,2,5,2,3,7]
Output: 5
Explanation: The longest harmonious subsequence is [3,2,2,2,3].

Note: The length of the input array will not exceed 20,000.

一种最大值和最小值相差1的数组,叫做和谐数组,求最大和谐子序列的长度

  1. public class Solution {
  2. public int FindLHS(int[] nums) {
  3. if (nums.Length == 0) {
  4. return 0;
  5. }
  6. Array.Sort(nums);
  7. Dictionary<int, int> dict = new Dictionary<int, int>();
  8. for(int i = 0; i < nums.Length; i++) {
  9. int num = nums[i];
  10. int val = 0;
  11. dict.TryGetValue(num, out val);
  12. if (val > 0) {
  13. dict[num]++;
  14. } else {
  15. dict[num] = 1;
  16. }
  17. }
  18. int sum = 0;
  19. int? lastKey = null;
  20. foreach(int i in dict.Keys) {
  21. if (lastKey == null) {
  22. lastKey = i;
  23. continue;
  24. }
  25. int lk = (int)lastKey;
  26. if (Math.Abs(i - lk) == 1) {
  27. sum = Math.Max(sum, dict[i] + dict[lk]);
  28. }
  29. lastKey = i;
  30. }
  31. return sum;
  32. }
  33. }

null

时间: 2024-12-22 18:16:41

594. Longest Harmonious Subsequence 最长的和谐子序列的相关文章

[LeetCode] Longest Harmonious Subsequence 最长和谐子序列

We define a harmonious array is an array where the difference between its maximum value and its minimum value is exactly 1. Now, given an integer array, you need to find the length of its longest harmonious subsequence among all its possible subseque

594. Longest Harmonious Subsequence

We define a harmonious array is an array where the difference between its maximum value and its minimum value is exactly 1. Now, given an integer array, you need to find the length of its longest harmonious subsequence among all its possible subseque

[LeetCode] 594. Longest Harmonious Subsequence

https://leetcode.com/problems/longest-harmonious-subsequence public class Solution { public int findLHS(int[] nums) { int result = 0; Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (int i = 0; i < nums.length; i++) { map.p

516 Longest Palindromic Subsequence 最长回文子序列

给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 详见:https://leetcode.com/problems/longest-palindromic-subsequence/description/ C++: class Solution { public: int longestPalindromeSubseq(string s) { int n = s.size(); vector<vector<int>> dp(n, vector<in

Longest Harmonious Subsequence

We define a harmonious array is an array where the difference between its maximum value and its minimum value is exactly 1. Now, given an integer array, you need to find the length of its longest harmonious subsequence among all its possible subseque

LeetCode算法题-Longest Harmonious Subsequence(Java实现)

这是悦乐书的第270次更新,第284篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第136题(顺位题号是594).我们定义一个和谐数组是一个数组,其最大值和最小值之间的差值恰好为1.给定一个整数数组,在其所有可能的子序列中找到其最长的和谐子序列的长度.例如: 输入:[1,3,2,2,5,2,3,7] 输出:5 说明:最长的和谐子序列是[3,2,2,2,3]. 注意:输入数组的长度不会超过20,000. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8

POJ 2533 Longest Ordered Subsequence 最长递增序列

Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1, a2, ..., aN) be any sequence (ai1, ai2, ..., aiK), where 1 <= i1 < i2 < ... < iK <= N. For example, seque

POJ 2533 - Longest Ordered Subsequence - [最长递增子序列长度][LIS问题]

题目链接:http://poj.org/problem?id=2533 Time Limit: 2000MS Memory Limit: 65536K Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1, a2, ..., aN) be any sequence (ai1, ai2, ...,

LeetCode 300. Longest Increasing Subsequence最长上升子序列 (C++/Java)

题目: Given an unsorted array of integers, find the length of longest increasing subsequence. Example: Input: [10,9,2,5,3,7,101,18] Output: 4 Explanation: The longest increasing subsequence is [2,3,7,101], therefore the length is 4. Note: There may be