zoukankan      html  css  js  c++  java
  • 137 Single Number II 数组中除了一个数外,其他的数都出现了三次,找出这个只出现一次的数

    给定一个整型数组,除了一个元素只出现一次外,其余每个元素都出现了三次。求出那个只出现一次的数。
    注意:
    你的算法应该具有线性的时间复杂度。你能否不使用额外的内存来实现?
    详见:https://leetcode.com/problems/single-number-ii/description/

    Java实现:

    建立一个32位的数组,来统计每一位上1出现的个数,如果某一位上为1的话,那么如果该整数出现了三次,对3去余为0,把每个数的对应位都加起来对3取余,最终剩下来的那个数就是单独的数字。

    参考:https://www.cnblogs.com/springfor/p/3870863.html

    https://www.cnblogs.com/grandyang/p/4263927.html

    class Solution {
        public int singleNumber(int[] nums) {
            int res=0;
            for(int i=0;i<32;++i){
                int sum=0;
                for(int j=0;j<nums.length;++j){
                    sum+=(nums[j]>>i)&1;
                }
                res+=(sum%3)<<i;
            }
            return res;
        }
    }
    
  • 相关阅读:
    JAVA微信公众号网页开发——获取公众号关注的所有用户
    删除mysl
    sql语言(mysql)
    mycat读写分离
    mysql双主双从技术
    实用的10个日志处理案例
    ansible基本操作
    MySQL改密
    mysql源码包安装
    ftp搭建mysql服务器
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8724660.html
Copyright © 2011-2022 走看看