1. 程式人生 > 其它 >#力扣 LeetCode1346. 檢查整數及其兩倍數是否存在 @FDDLC

#力扣 LeetCode1346. 檢查整數及其兩倍數是否存在 @FDDLC

技術標籤:演算法&資料結構

題目描述:

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;
    }
}