题目描述:
1346. 检查整数及其两倍数是否存在 - 力扣(LeetCode) (leetcode-cn.com)
Java代码一:主要是处理0的问题
import java.util.HashSet;
class Solution { //2 <= arr.length <= 500,-10^3 <= arr[i] <= 10^3
public boolean checkIfExist(int[] arr) {
HashSet<Integer> doubleSet=new HashSet<>();
int zeroCount=0;
for(int element:arr)if(element==0)zeroCount++;
if(zeroCount>1)return true; //有两个或两个以上的0
for(int element:arr)if(element!=0)doubleSet.add(element*2); //把该元素的2倍加入集合中
for(int element:arr)if(doubleSet.contains(element))return true;
return false;
}
}

Java代码二:
import java.util.HashSet;
class Solution { //2 <= arr.length <= 500,-10^3 <= arr[i] <= 10^3
public boolean checkIfExist(int[] arr) {
HashSet<Integer> set=new HashSet<>();
for(int element:arr){
if(set.contains(element<<1)||(element&1)==0&&set.contains(element>>1))return true;
set.add(element);
}
return false;
}
}

421

被折叠的 条评论
为什么被折叠?



