题意:

image.png

解题思路:

  1. 思路:
  2. 1. 异或操作,两个相同的数异或结果为0;
  3. 2. 一个数跟0异或是这个数本身。

PHP代码实现:

  1. class Solution {
  2. /**
  3. * @param Integer[] $nums
  4. * @return Integer
  5. */
  6. function singleNumber($nums) {
  7. $res = $nums[0];
  8. for ($i = 1; $i < count($nums); $i++) {
  9. $res ^= $nums[$i];
  10. }
  11. return $res;
  12. }
  13. function singleNumber1($nums) {
  14. $arr = [];
  15. foreach($nums as $value) {
  16. if (!isset($arr[$value])) {
  17. $arr[$value] = 1;
  18. } else {
  19. $arr[$value]++;
  20. }
  21. }
  22. foreach ($arr as $key => $v) {
  23. if ($v == 1) return $key;
  24. }
  25. }
  26. function singleNumber2($nums) {
  27. $arr = [];
  28. foreach ($nums as $value) {
  29. if (!isset($arr[$value])) {
  30. $arr[$value] = 1;
  31. } else {
  32. unset($arr[$value]);
  33. }
  34. }
  35. foreach($arr as $key => $v) {
  36. return $key;
  37. }
  38. }
  39. }

GO代码实现:

  1. func singleNumber(nums []int) int {
  2. res := 0
  3. for _, v := range nums {
  4. res ^= v
  5. }
  6. return res
  7. }