[LeetCode] 137. Single Number II

【原题】 Given an array of integers, every element appears three times except for one, which appears exactly once. Find that single one. 【解释】 一个整数数组中,除了一个元素出现一次之外,其余元素都出现了三次,要求找出这个只出现一次的元素。 【思路】 和single number一样使用位操作,但是本题不能一步到位。统计数组中的所有数组在每一位上1出现的次数,若在改位上不为3的倍数,说明在改位上只出现一次的数也为1。于是可以用或操作来保存这一位值并移位。int占32位,所以内层循环操作总共执行32n次。

public class Solution {
    public int singleNumber(int[] nums) {
        int[] count=new int[32];
        int ans=0;
        for(int i=0;i<32;i++){
            for(int j=0;j<nums.length;j++){
                count[i]+=(nums[j]>>i)&1;

            }
            ans|=(count[i]%3)<<i;//当前一位不为3的倍数,说明single number在这里为1
        }
        return ans;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏文武兼修ing——机器学习与IC设计

栈与栈的实现栈栈的基本操作栈的实现

栈 栈是一种基础的数据结构,只从一端读写数据。基本特点就”后进先出“,例如顺序入栈1,2,3,4,5,再顺序出栈是5,4,3,2,1 栈的基本操作 栈的基本操作...

2885
来自专栏码匠的流水账

聊聊storm TridentWindowManager的pendingTriggers

本文主要研究一下storm TridentWindowManager的pendingTriggers

1343
来自专栏Bingo的深度学习杂货店

Q20 Valid Parentheses

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', d...

2754
来自专栏乐享123

Python编程实战 - 笔记1

1859
来自专栏高性能服务器开发

(四)sds字符串

今天分析的是Redis源码中的字符串操作类的代码实现。有了上几次的分析经验,渐渐觉得我得换一种分析的方法,如果每个API都进行代码分析,有些功能性的重复,导致分...

35710
来自专栏流媒体

Prototype模式简介

用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克...

651
来自专栏机器学习入门

LWC 55:712. Minimum ASCII Delete Sum for Two Strings

LWC 55:712. Minimum ASCII Delete Sum for Two Strings 传送门:712. Minimum ASCII Dele...

2267
来自专栏Java Edge

"聊胜于无",浅析Java中的原子操作Java的指针Unsafe类i++不是线程安全的1 原子更新基本类型类2 原子更新数组3 AtomicReference(原子更新引用)4 原子更新字段Atomi

4936
来自专栏你不就像风一样

Java多线程核心技术(五)单例模式与多线程

什么是立即加载?立即加载就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接 new 实例化。

563
来自专栏DHUtoBUAA

《剑指Offer》附加题_用两个队列实现一个栈_C++版

  在《剑指Offer》中,在栈和队列习题中,作者留下来一道题目供读者自己实现,即“用两个队列实现一个栈”。   在计算机数据结构中,栈的特点是后进先出,即最后...

2805

扫码关注云+社区