면접 문제 56 - I. 배열 에서 숫자 가 나 오 는 횟수
3018 단어 알고리즘
두 개의 같은 숫자 가 0 을 얻 거나, 한 수 와 0 을 얻 거나, 자신 을 얻는다.따라서 이 한 줄 의 숫자 가 다 르 거나 내 려 오 면 두 개의 숫자 x, y 의 이 또는 z 를 얻 을 수 있다.그러면 z 에서 1 인 한 명 은 x 를 의미 하고 y 는 이 한 명 에서 0 이 고 한 명 은 1 이다.z 에서 1 인 한 자 리 를 다른 숫자 비트 와 함께 취 할 수 있 으 며, 배열 을 0 인 한 그룹 과 이 한 자 리 를 1 인 다른 그룹 으로 나 눌 수 있다.그리고 두 조 에 대해 각각 다른 것 을 취하 거나 x, y 를 꺼 냈 다.
func singleNumbers(nums []int) []int {
ans:=0
for _,v:=range nums{
ans^=v
}
tmp:=1
for ans%2==0{
ans>>=1
tmp<<=1
}
ans1,ans2:=0,0
for _,v:=range nums{
if v&tmp==0{
ans1^=v
}else{
ans2^=v
}
}
return []int{ans1,ans2}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.