[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 条评论
登录 后参与评论

相关文章

来自专栏有趣的Python

玩转算法面试:(三)LeetCode数组类问题

数组中的问题其实最常见。 排序:选择排序;插入排序;归并排序;快速排序 查找:二分查找法 数据结构:栈;队列;堆 …… 如何写出正确的程序 建立一个基...

3864
来自专栏专知

【专知-关关的刷题日记15】Leetcode 27. Remove Element 方法1、2、3

题目 Given an array and a value, remove all instances of that value in place and r...

3267
来自专栏java一日一条

使用Java 8函数式编程生成字母序列

在 Java 8 中使用函数式编程生成字母序列是一个很大的挑战。Lukas Eder 愉快地接受了这个挑战,他将告诉我们如何使用 Java 8 来生成ABC的序...

322
来自专栏SeanCheney的专栏

《利用Python进行数据分析·第2版》 附录A NumPy高级应用A.1 ndarray对象的内部机理A.2 高级数组操作A.3 广播A.4 ufunc高级应用A.5 结构化和记录式数组A.6 更多

在这篇附录中,我会深入NumPy库的数组计算。这会包括ndarray更内部的细节,和更高级的数组操作和算法。 这章包括了一些杂乱的章节,不需要仔细研究。 A.1...

4876
来自专栏Golang语言社区

Go语言实现的排列组合问题实例(n个数中取m个)

本文实例讲述了Go语言实现的排列组合问题。分享给大家供大家参考,具体如下: (一)组合问题 组合是一个基本的数学问题,本程序的目标是输出从n个元素中取m个的所有...

3085
来自专栏HTML5学堂

原生JS | 当兔子遇到鸡

HTML5学堂-码匠:当兔子遇到鸡,会怎样呢?先别急,看个小视频~ 视频内容 当兔子遇到鸡 —— 不要害怕和别人不一样,在这个世界上,你就是独一无二的自己! 不...

36810
来自专栏用户2442861的专栏

STL源码剖析-hashtable

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

1024
来自专栏desperate633

一篇文章搞懂面试中leetcode位操作算法题Single Number落单的数落单的数 IISingle Number IISingle Number III落单的数 IIINumber of 1

本文将根据题目总结常用的位操作常用的解决算法问题的技巧 如读者对基本的位操作概念还不熟悉,可以先参考笔者的文章浅谈程序设计中的位操作http://www.ji...

551
来自专栏阮一峰的网络日志

Unicode与JavaScript详解

上个月,我做了一次分享,详细介绍了Unicode字符集,以及JavaScript语言对它的支持。下面就是这次分享的讲稿。 ![](/blogimg/asset/...

3215
来自专栏C语言C++游戏编程

这是C语言无法修改得东西,C语言基础教程之常量解析

常量可以是任何基本数据类型,如整数常量,浮点常量,字符常量或字符串文字,还有枚举常量。

541

扫码关注云+社区