[Leetcode]Single Number &&Single Number II

mac2022-06-30  24

Given an array of integers, every element appears twice except for one. Find that single one.

非常简单的一道题。

直接相异或剩下的那个数就是答案。原理是两个相等的数异或的值为0。

1 class Solution { 2 public: 3 int singleNumber(int A[], int n) { 4 int temp; 5 for(int i=0;i!=n;i++) 6 temp=temp^A[i]; 7 return temp; 8 } 9 };

 Given an array of integers, every element appears three times except for one. Find that single one.

用好位运算,多看看与或非到底能做什么。

1 class Solution { 2 public: 3 int singleNumber(int A[], int n) { 4 int one=0,two=0,three=0; 5 for(int i=0;i!=n;i++){ 6 three = A[i] & two; 7 two=two | (one & A[i]); 8 one = one | A[i]; 9 one = one & ~three; 10 two = two & ~three; 11 } 12 return one; 13 } 14 };

 

转载于:https://www.cnblogs.com/desp/p/4333878.html

最新回复(0)