비어 있지 않은 정수 숫자의 배열이 주어지면, 하나를 제외한 모든 원소는 두 번 나타난다. 그 싱글을 찾아라. 선형 런타임 복잡성을 가진 솔루션을 구현하고 일정한 추가 공간만 사용해야 합니다.
https://leetcode.com/problems/single-number/
Given a non-empty array of integers nums, every element appears twice except for one. Find that single one.
You must implement a solution with a linear runtime complexity and use only constant extra space.
Example 1:
Input: nums = [2,2,1]
Output: 1
Example 2:
Input: nums = [4,1,2,1,2]
Output: 4
Example 3:
Input: nums = [1]
Output: 1
자바입니다.
class Solution {
public int singleNumber(int[] nums) {
if(nums.length==1) return nums[0];
Set<Integer> single = new HashSet<>();
for(int num : nums){
if(single.contains(num)){
single.remove(num);
}else{
single.add(num);
}
}
return single.iterator().next();
}
}
class Solution {
public int singleNumber(int[] nums) {
if(nums.length==1) return nums[0];
int res = 0;
for(int num:nums) res^=num;
return res;
}
}