首页 > 试题广场 >

数组中只出现一次的数字

[编程题]数组中只出现一次的数字
  • 热度指数:450674 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
头像 牛客题解官
发表于 2020-06-01 14:50:25
精华题解 描述 这是一篇针对初学者的题解,共用两种方法解决。知识点:数组,位运算,哈希难度:一星 题解 题目抽象:给定一个数组,数组中只有2个数字出现了一次,其余都出现了2次,找出这2个数字。 方法一:哈希法 很显然的方法,遍历一遍数组,用map记录出现的次数,然后再遍历一遍数组,找出出现1次的数字。 代码 展开全文
头像 一叶浮尘
发表于 2019-08-24 17:38:52
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 简单方法 可以先用最简单的HashMap的方法来做,这样主要是为了练习Map的用法。 import java.util.HashMap; public class Solution { publi 展开全文
头像 Janebook2019
发表于 2019-08-29 22:17:45
Java 实现1、Arrays.sort 数组排序2、使用栈进行从小到大入栈,一样的则弹出,不一样则入栈3、取栈中剩余的元素 //num1,num2分别为长度为1的数组。传出参数 //将num1[0],num2[0]设置为返回结果 import java.util.Arrays; import ja 展开全文
头像 遗落的梦
发表于 2020-02-09 20:51:21
这个可以使用ArrayList来解决,代码比较简洁。首先判断ArrayList中是否已存在,如果存在,则删除。删除时需要注意一下,如果直接传入当前数作为参数,它会按照下标进行删除,不会按照对象进行删除,可能会出现越界。所以需要new Integer()。 public void FindNumsA 展开全文
头像 学无止境呀~
发表于 2019-09-10 20:17:32
40. 数组中只出现一次的数字 题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 思路思路一:遍历数组,对每个元素直接利用python数组的count函数,因为count()也是,等价于遍历数组再计数,所以时间复杂度为,思路二:利用字典保存元素出 展开全文
头像 qiaoHaoTing
发表于 2020-10-09 01:01:29
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 先来看一下异或的运算法则 a ⊕ a = 0 a ⊕ 0 = a通过位运算的话,就是相同为0,不同为1,如下表a b a⊕b1 0 11 1 00 0 00 1 1 a ⊕ b = b ⊕ a a ⊕b 展开全文
头像 救救孩子吧!offer++;
发表于 2019-08-19 20:32:00
记数组中存在的唯一的两个数字分别为a,b 首先以二进制的角度去看所有的数字,每一位均为0,1组成 对所有数字进行个位上的异或,成对相同的数字结果为0,每一位上都这样异或依次,所以最终每一位上存在1的则必然是因为a,b在这一位上不同 根据最终结果上存在‘1’的这一位,将原数组分为两组,一组‘1’,一组 展开全文
头像 coding,justdoit!
发表于 2020-07-11 15:29:31
我们先来看一个比较简单的情况,如果数组中只有一个数字出现一次,其他都出现两次。那么我们应该可以想到异或运算。异或运算有一个比较好的性质是:相同为0,相异为1。也就是说,任何一个数字异或它自己都等于0,而0异或任何数都等于那个数。因此,我们从头到尾依次异或数组中的每个数字,那么最终结果刚好是那个只出现 展开全文
头像 这个昵称不太火
发表于 2019-09-04 15:23:48
class Solution { public: void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) { int ans = 0; for(int d: data) 展开全文
头像 zzucj
发表于 2020-07-06 22:00:39
先异或获得那两个数字的异或值,则这个值的二进制第一个1就是两个数的二进制不同的位。那根据这个位来把数组分成两派,一派是这个位为1,另一派是这个位是0,那异或这两派就可以获得这两个数字。 public void FindNumsAppearOnce(int [] array,int num1[ 展开全文
头像 一颗闪闪发亮的马路星
发表于 2020-02-22 19:59:38
题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 这题我看有很多朋友的解法是新建一个map/dictionary来储存所有出现次数,但是其实不用额外储存也是可以做的。这题首先因为他明确写了,只有我们需要找到的两个数字,出现了一次,所以我们其实可以首 展开全文