首页 > 其他 > 详细

力扣题解 136th 只出现一次的数字

时间:2020-07-03 10:35:00      阅读:60      评论:0      收藏:0      [点我收藏+]

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;
        }
    }
    

力扣题解 136th 只出现一次的数字

原文:https://www.cnblogs.com/fromneptune/p/13228380.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!