解題思路
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 協議》,轉載必須註明作者和本文連結