[leetcode] Python 실현 - 136. 한 번 만 나 오 는 숫자.
3206 단어 leetcode
묘사 하 다.
빈 정수 가 아 닌 배열 을 지정 합 니 다. 특정한 요소 가 한 번 만 나타 나 는 것 을 제외 하고 나머지 모든 요 소 는 두 번 씩 나타 납 니 다.한 번 밖 에 나타 나 지 않 은 원 소 를 찾 아 라.설명: 당신 의 알고리즘 은 선형 시간 복잡 도 를 가 져 야 합 니 다.당신 은 추가 공간 을 사용 하지 않 고 실현 할 수 있 습 니까?
예제 1: 입력: [2, 2, 1] 출력: 1
예시 2: 입력: [4, 1, 2, 1, 2] 출력: 4
나 v 1.0
class Solution:
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
s = []
for i in nums:
if i not in s:
s.append(i)
elif i in s:
s.remove(i)
return s[0]
좋 습 니 다. 시간 제한 을 초과 하 였 습 니 다.이미 파악 하고 있 습 니 다.아래 v 2.0 버 전 은 코드 를 줄 이기 위 한 것 이지 만 효율 적 으로 개선 되 지 않 았 다.
for i in nums:
if nums.count(i) == 1:
return i
다른 사람의 코드 를 보 니 제 첫 번 째 버 전의 생각 이 괜 찮 은 것 같 습 니 다. 목록 s 를 사전 으로 바 꾸 는 것 이 좋 을 것 같 습 니 다.
s = {}
for i in nums:
if i in s.keys():
s.pop(i)
else:
s[i]=1
return list(s.keys())[0]
잘 통 과 했 습 니 다. 하지만 실행 시간 을 늘 릴 수 있 는 공간 이 있 습 니 다. 최종 boss 를 보 세 요.고급 용법 이 다 르 거나 ^ 0 이 다 르 거나 그 어떠한 숫자 도 변 하지 않 으 며 그 어떠한 숫자 도 자신 과 다 르 거나 0 이다.a⊕b⊕a=b。덧셈 의 결합 율 과 교환 율 을 만족 시 키 거나 만족 시킨다.666 이상 또는 조작 이 정말 강 합 니 다. 제 가 제출 한 집행 용 은 95.75% 의 Python 3 제출 기록 을 이 겼 습 니 다.v3.0
class Solution:
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
res = 0
for i in nums:
res^=i
return res
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
0부터 시작하는 LeetCode Day8 「1302. Deepest Leaves Sum」해외에서는 엔지니어의 면접에 있어서 코딩 테스트라고 하는 것이 행해지는 것 같고, 많은 경우, 특정의 함수나 클래스를 주제에 따라 실장한다고 하는 것이 메인이다. 빠른 이야기가 본고장에서도 행해지고 있는 것 같은 코...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.