문제
한 번만 존재하는 숫자를 찾아야 합니다.
무차별 접근 방식은 HashMap을 사용하여 값 개수를 추적한 다음 개수 =1인 값을 반환하는 것입니다.
비트 조작을 이용한 최적의 접근 방식:
다른 모든 조합에 대해서는 1^0 = 1, 0 ^1 = 1, 0 ^0 = 0, 1 ^ 1= 0이라는 것을 알고 있습니다.
이는 exor가 동일한 값에 대해 0을 제공한다는 것을 의미하므로 배열의 모든 값을 exor하면 개수가 1인 숫자만 제공됩니다(나머지 값은 0이 되므로)
TC: O(n)
SC: O(1)
class Solution { public int singleNumber(int[] nums) { int single = nums[0]; for(int i =1;i<nums.length;i++){ single = single^nums[i]; } return single; } }
위 내용은 단일 숫자 I의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!