본문 바로가기

Programming/#Algorithm

[알고리즘] Leetcode #136 싱글 넘버 (Python)


↓↓↓ 아래는 내 리트코드 계정 ↓↓↓

leetcode.com/Jiwon_Lee/

 

Jiwon Lee - LeetCode Profile

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 


문제 설명

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

 

Constraints
  • 1 <= nums.length <= 3 * 104
  • -3 * 104 <= nums[i] <= 3 * 104
  • Each element in the array appears twice except for one element which appears only once.

 

Code
def singleNumber(self, nums):
    result = 0
    for num in nums:
        result ^= num
    return result

예전 딥러닝 스터디에서 퍼셉트론 공부할 때 나온 XOR 개념을 이용한 풀이. 최종적으로 전체 문자열에서 한 번만 나오는 문자를 반환한다. 

def hamingDistance(self, x, y):
    return bin(x ^ y).count('1')

마찬가지 XOR로 두 숫자 간 해밍거리를 구하는 함수


 

 

I'm a Senior Student in Data Science ! 

데이터 사이언스를 공부하고 있는 학부생의 TIL 블로그입니다. 게시글이 도움 되셨다면 구독과 좋아요 :)