zoukankan      html  css  js  c++  java
  • 力扣题解 136th 只出现一次的数字

    136th 只出现一次的数字

    • 先排序后处理数据

      class Solution {
          public int singleNumber(int[] nums) {
              Arrays.sort(nums);
              boolean flag = false;
              int ans = 0;
              for(int i = 0; i < nums.length; i++) {
                  if(i+1 == nums.length) {
                      ans = nums[i];
                      break;
                  }
                  if(nums[i] == nums[i+1]) {
                      i++;
                      continue;
                  }
                  ans = nums[i];
                  break;
              }
      
              return ans;
          }
      }
      
    • 使用异或运算

      异或运算有以下三个性质。

      • 任何数和 00 做异或运算,结果仍然是原来的数,即 a⊕0=a a⊕0=a。

      • 任何数和其自身做异或运算,结果是 00,即 a⊕a=0 a⊕a=0。

      • 异或运算满足交换律和结合律,即 a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b

        , a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。

      class Solution {
          public int singleNumber(int[] nums) {
              int ans = 0;
              for(int i = 0; i < nums.length; i++) {
                  ans ^= nums[i];
              }
              return ans;
          }
      }
      
  • 相关阅读:
    H
    并查集
    H
    Supermarket (贪心 并查集)
    H
    M
    N-Find a way
    HDU 4035 Maze
    #386. 【UNR #3】鸽子固定器
    P4688 [Ynoi2016]掉进兔子洞
  • 原文地址:https://www.cnblogs.com/fromneptune/p/13228380.html
Copyright © 2011-2022 走看看