首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
数组中只出现一次的数字
[编程题]数组中只出现一次的数字
热度指数:450674
时间限制: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收藏
161556浏览
热门推荐
通过挑战的用户
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)
Primary Arithmetic
字符串
基础数学
位运算
评论
(39)
Skew数
基础数学
位运算
评论
(48)
编译方法中,动态存储分配的含义是:()
编译和体系结构
评论
(2)
来自
乐视2017秋招开发工程...
闪速存储器能提供高性能、低功耗、字...
编程基础
评论
(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 }