594. 最长和谐子序列
解题思路
1. 统计每个元素出现次数
2. 找到两个数的绝对值差为1,并记下次数和
3. 重复2步骤
代码
class Solution {
public int findLHS(int[] nums) {
if(nums == null || nums.length ==0){
return 0;
}
Map<Integer, Integer> map=new HashMap<>();
for (int i=0;i<nums.length;i++){
map.put(nums[i], map.getOrDefault(nums[i], 0) + 1);
}
int length = 0;
for (int i=0; i < nums.length; i++) {
for (int j=i+1; j < nums.length; j++) {
if(Math.abs(nums[j] - nums[i]) == 1){
int sum = map.get(nums[j]) + map.get(nums[i]);
if(sum > length){
length = sum;
}
}
}
}
return length;
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接