美文网首页
一个数组,只有一个数只出现一次,其余都出现3次,求出现一次的那个

一个数组,只有一个数只出现一次,其余都出现3次,求出现一次的那个

作者: 风逝勿追 | 来源:发表于2017-10-15 14:25 被阅读0次

思路一将数组排序,只出现一次的数只可能出现在0,4,7等位置,对这些位置进行前后判断

思路二:将数组中的每个数都变成2进制的数,然后全部相加,用一个32长度的bits数组储存相加结果,然后对每一位除以三,凡是不能除尽的就标1,最后得到的数就是只出现一次的数。

实现结果如下:

public int findNumber(int a[], int n) {

int result = 0;

int bits[] = new int[32];

for (int i = 0; i < n; i++) {

for (int j = 0; j < bits.length; j++) {

bits[j] += ((a[i] >> j) & 1);

}

}

for (int i = 0; i < bits.length; i++) {

if (bits[i] % 3 != 0) {

result += (1 << i);

}

}

return result;

}

相关文章

  • “求只出现一次的数字”系列算法问题

    目前遇到的“求只出现一次的数字”系列的算法题目主要有以下三个: 题目一:数组中只有一个元素只出现一次,其余的元素都...

  • 2018-09-26 137. Single Number II

    题意:给你一个vector数组,只有一个数出现一次,其余的数都出现三次,返回那个出现一次的数。要求:时间复杂度O(...

  • 一个数组,只有一个数只出现一次,其余都出现3次,求出现一次的那个

    思路一:将数组排序,只出现一次的数只可能出现在0,4,7等位置,对这些位置进行前后判断 思路二:将数组中的每个数都...

  • leetcode-【只出现一次的数字】

    【只出现一次的数字】给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次...

  • 只出现一次的数字

    只出现一次的数字 题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现...

  • LeetCode: 只出现一次的数字

    只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的...

  • LeetCode之只出现一次的数字——JavaScript实现

    只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的...

  • 只出现一次的数字

    只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的...

  • 2019-01-18 Day 13

    只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元...

  • 只出现一次的数字 II

    给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了...

网友评论

      本文标题:一个数组,只有一个数只出现一次,其余都出现3次,求出现一次的那个

      本文链接:https://www.haomeiwen.com/subject/uoccuxtx.html