首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
数组中只出现一次的数字
[编程题]数组中只出现一次的数字
热度指数:450685
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 64M,其他语言128M
算法知识视频讲解
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(1987)
分享
提交结果有问题?
1441个回答
66篇题解
开通博客
牛客题解官
发表于 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来储存所有出现次数,但是其实不用额外储存也是可以做的。这题首先因为他明确写了,只有我们需要找到的两个数字,出现了一次,所以我们其实可以首
展开全文
问题信息
位运算
哈希
难度:
1441条回答
1987收藏
164112浏览
热门推荐
通过挑战的用户
GXR1116
2023-03-07 17:50:43
||||||
2023-03-05 19:27:20
牛客25875...
2023-01-28 17:07:26
牛客79086...
2023-01-23 12:26:31
调皮的比尔在求佛
2023-01-13 11:34:57
相关试题
旅行Ⅱ
动态规划
位运算
评论
(1)
Skew数
基础数学
位运算
评论
(49)
Primary Arithmetic
字符串
基础数学
位运算
评论
(39)
执行以下代码,如果想要 box1 ...
HTML
前端工程师
蘑菇街
2019
CSS
评论
(1)
浮点除法
过关题目
语言题
评论
(1)
数组中只出现一次的数字
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; //num1,num2分别为长度为1的数组。传出参数 //将num1[0],num2[0]设置为返回结果 public class Solution { public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) { } }
class Solution { public: void FindNumsAppearOnce(vector
data,int* num1,int *num2) { } };
# -*- coding:utf-8 -*- class Solution: # 返回[a,b] 其中ab是出现一次的两个数字 def FindNumsAppearOnce(self, array): # write code here
//num1,num2分别为长度为1的数组。传出参数 //将num1[0],num2[0]设置为返回结果 class Solution { public void FindNumsAppearOnce(int[] array, int[] num1, int[] num2) { // write code here } }
function FindNumsAppearOnce(array) { // write code here // return list, 比如[a,b],其中ab是出现一次的两个数字 } module.exports = { FindNumsAppearOnce : FindNumsAppearOnce };
# -*- coding:utf-8 -*- class Solution: # 返回[a,b] 其中ab是出现一次的两个数字 def FindNumsAppearOnce(self, array): # write code here
package main func FindNumsAppearOnce(nums []int) []int { //返回[a,b] 其中ab是出现一次的两个数字 //write your code }