最长和谐子序列
力扣 594. 最长和谐子序列
题目说明
和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。
现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。
数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。
提示:
1 <= nums.length <= 2 * 10^4-10^9 <= nums[i] <= 10^9
示例
示例 1:
1 | 输入:nums = [1,3,2,2,5,2,3,7] |
示例 2:
1 | 输入:nums = [1,2,3,4] |
示例 3:
1 | 输入:nums = [1,1,1,1] |
笔者理解
此题是一道数组算法问题,在力扣题库中被定义为简单题。
解法
当笔者阅读完此题后,发现因为本题不要求是子数组,所以可以直接对元素进行统计,让我们来看看具体如何实现的吧。
实现
1 | class Solution { |
时间和空间效率还行,可见此解法还比较适合此题。
总结
本题是今天的一题,难度是为简单,感兴趣的朋友都可以去尝试一下,此题还有其他更多的解法,朋友们可以自己逐一尝试。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 徐年の博客!









