zoukankan      html  css  js  c++  java
  • LeetCode刷题记录(3)—— 136. 只出现一次的数字

    class Solution {
        public int singleNumber(int[] nums) {
            /*思路一:利用HashSet去除重复项(o(n))
            Set<Integer> set=new HashSet<>();
            for(int i=0;i<nums.length;i++){
                if(!set.contains(nums[i])){
                    set.add(nums[i]);
                }else{
                    set.remove(nums[i]);
                }
            }
            int res=(int)set.toArray()[0];
            return res;*/
    //思路二:先排序然后左右比较(o(logn)) /*if(nums.length==1) return nums[0]; Arrays.sort(nums); if(nums[0]!=nums[1]) return nums[0]; for(int i=1;i<nums.length-1;i++){ if(nums[i]!=nums[i-1]&&nums[i]!=nums[i+1]) return nums[i]; } return nums[nums.length-1];*/
         //思路三:位运算(XOR异或)(o(n))
         
    //1、交换律:a ^ b ^ c <=> a ^ c ^ b
         //2、任何数于0异或为任何数 0 ^ n => n
         //3、相同的数异或为0: n ^ n => 0
            int result = 0;
            for(int i=0;i<nums.length;i++)
            {
               result^=nums[i];
            }
            return result;
        }
    }
  • 相关阅读:
    python_6
    python_day4
    python_day3
    python_day2
    python
    python入门
    jQuery之前端国际化jQuery.i18n.properties
    转载!网页中插入百度地图
    jQuery.validate 中文API
    Web移动端Fixed布局的解决方案
  • 原文地址:https://www.cnblogs.com/esperanza/p/12171177.html
Copyright © 2011-2022 走看看