其他分享
首页 > 其他分享> > 【LeetCode】第25天 - 594. 最长和谐子序列

【LeetCode】第25天 - 594. 最长和谐子序列

作者:互联网

594. 最长和谐子序列

题目描述

在这里插入图片描述

解题思路

可以利用哈希表来储存每个元素及每个元素出现的次数,key为元素值,value为元素出现的次数。

代码实现

class Solution {
    public int findLHS(int[] nums) {
        Map<Integer,Integer> map = new HashMap<Integer,Integer>();
        for(int i=0;i<nums.length;i++){
            //统计各元素值的出现次数
            //getOrDefault(key,default):当 Map 集合中有这个 key 时,就使用这个 key对应的value值;如果没有就使用默认值 default
            map.put(nums[i],map.getOrDefault(nums[i],0) + 1);
        }

        int maxLength = 0;
        for(int key : map.keySet()){
            if(map.containsKey(key + 1)){       //如果存在相差为1的元素,计算出现次数和
                maxLength = Math.max(maxLength,map.get(key) + map.get(key+1));
            }
        }

        return maxLength;
    }
}

标签:25,594,map,int,元素,次数,key,maxLength,LeetCode
来源: https://blog.csdn.net/weixin_43598687/article/details/121435094