LeetCode ) 217. Contains Duplicate

유병수·2023년 5월 18일
0

217. Contains Duplicate

배열의 모든 요소가 유니크하면 false를 하나라도 중복된 값이 있다면 true를 리턴하면 된다.

처음에는 기존에 배열을 set으로 변경 한 뒤, 갯수를 세어 비교를 했는데, java에서 set에 add 를 하게되면 이미 있는 값이라면 false를, 성공하면 true를 반환한다. 따라서 전부 유니크한 값이 아니라서 전체 순회를 하는 경우가 아니라면 시간을 줄일 수 있다.

class Solution {
    public boolean containsDuplicate(int[] nums) {
        
        int basicCount = nums.length;

        Set<Integer> numberSet = new HashSet<>(Arrays.stream(nums).boxed().collect(Collectors.toList()));

        int setCount = numberSet.size();

        if(basicCount != setCount) return true;

        return false;
    }
}

개선 코드

class Solution {
    public boolean containsDuplicate(int[] nums) {

        Set<Integer> numberSet = new HashSet<>();

        for(int num : nums){
            if(!numberSet.add(num)){
                return true;
            }
        }
        return false;
    }
}

0개의 댓글