首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
数组中只出现一次的两个数字
[编程题]数组中只出现一次的两个数字
热度指数:119623
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
数据范围:数组长度
,数组中每个数的大小
要求:空间复杂度
,时间复杂度
提示:输出时按非降序排列。
示例1
输入
[1,4,1,6]
输出
[4,6]
说明
返回的结果中较小的数排在前面
示例2
输入
[1,2,3,3,2,9]
输出
[1,9]
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(4)
邀请回答
收藏(1217)
分享
提交结果有问题?
268个回答
293篇题解
开通博客
LaN666
发表于 2021-06-23 14:25:01
精华题解
40、数组中只出现一次的两个数字 方法一: 题目给的意思分析之后,很容易想到一种方法,就是用哈希表辅助得到这两个只出现一次的数字。 代码思路: 1、创建一个哈希表 2、当数组元素没有在哈希表中成为key的时候,put进哈希表,当已存在的时候,则remove掉。 3、最后哈希表中剩下的key就是只出现
展开全文
牛客题解官
发表于 2022-04-22 12:23:49
精华题解
题目主要信息: 一个长度为nnn的数字,除了两个数字只出现1次,其余数字都出现2次 要找到这两次只出现一次的数字,还要以非降序输出 举一反三: 学习完本题的思路你可以解决如下题目: BM51. 数组中出现次数超过一半的数字 BM53. 缺失的第一个正整数 方法一:哈希表(推荐使用) 知识点:哈希
展开全文
幸福的火龙果在干饭
发表于 2021-06-22 18:50:30
精华题解
一、题目描述 JZ40数组中只出现一次的两个数字题目大意:一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次,请写程序找出这两个只出现一次的数字注意审题:题目保证有两个数字只出现一次,其余数字出现两次,并且返回的结果中较小的排在前面 二、算法1(排序) 算法思路 1.总体思路:先对数组从小
展开全文
江南好___
发表于 2021-06-23 13:06:14
精华题解
描述 题目描述 一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 示例 输入:[1,4,1,6] 返回值:[4,6] 说明:返回的结果中较小的数排在前面 引言 首先看到这道题,抠字眼: 两个数字只出现一次,其他的数字都出现了两次,两个 “两” 是解
展开全文
堆栈哲学
发表于 2021-07-15 15:02:48
精华题解
解法一:位运算(推荐) 既满足时间复杂度又满足空间复杂度,就要提到位运算中的异或运算 XOR,主要因为异或运算有以下几个特点: 一个数和 0 做 XOR 运算等于本身:a⊕0 = a 一个数和其本身做 XOR 运算等于 0:a⊕a = 0 XOR 运算满***换律和结合律:a⊕b⊕a = (a⊕a
展开全文
未来0116
发表于 2021-07-18 18:06:56
精华题解
一.题目描述Nc75数组中只出现一次的两个数字题目链接:https://www.nowcoder.com/practice/389fc1c3d3be4479a154f63f495abff8?tpId=188&&tqId=38602&rp=1&ru=/activity/
展开全文
2019113913
发表于 2021-07-18 15:41:12
精华题解
题意思路:一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 方法一:hash 将数组中所有元素遍历并映射到hash中统计数量,可以使用map保存数字和出现次数。 如果出现次数超过一次则删除数字 最后统计数组中只出现一次的两个数字。 复杂度分析 时间复
展开全文
2019113916
发表于 2021-07-18 19:32:01
精华题解
方法一:暴力 1.结题思路 暴力法统计元素出现次数并输出。 2.解法 暴力,遍历vector,并用map或set统计每个元素的出现次数再找出出现次数为1的数即可。 3.具体代码 vector<int> FindNumsAppearOnce(vector<int>&
展开全文
牛客500979850号
发表于 2021-07-15 14:16:30
精华题解
方法一: 直接使用哈希表,用哈希表的额外内存空间来记住当前数字出现的次数,出现两次的会被删除,只剩下两个出现一次的数字。 代码如下: class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
展开全文
牛欢喜牛牛
发表于 2021-02-26 03:15:45
public class Solution { public void swap(int[] a, int l, int r){ int o = a[l]; a[l]=a[r]; a[r]=o; } public int[]
展开全文
王清楚
发表于 2021-03-25 15:51:12
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。先考虑另一个问题,一个整型数组里除了一个数字之外,其他的数字都出现了两次,那把所有的数据异或起来,异或的结果就是那一个数字。(因为出现过两次的数字异或起来就抵消了) 对于这个题来说,如果把数字全异或起来,最后
展开全文
月关雨辰
发表于 2021-09-14 23:11:16
用异或^可解此题。 但是首先要知道一个知识点,a^b^a = a^a^b = b^a^a =b,这个知识点也就是本题的简单版本:如果数组中除了某一个数字,其他数字都出现了两次,找出该数字。思路就是遍历数组,对每一个数字都求异或,最后得到的值就是要找的数字。 有了该知识点的储备,再来看看本题。本题是要
展开全文
不经历怎么能成长
发表于 2021-03-18 20:40:11
用哈希表统计数字出现的次数。时间复杂度O(n)空间复杂度也为O(n) class Solution { public: vector<int> FindNumsAppearOnce(vector<int>& a) { unordered_ma
展开全文
馒头2020
发表于 2021-03-16 12:01:53
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 示例 输入 [1,4,1,6] 返回值 [4,6] 说明 返回的结果中较小的数排在前面 解题思路 先使用 Set 集合存储数字,如果出现了第二个相同的数字,会在 Set 中找到对应的
展开全文
李东蔚
发表于 2021-09-24 17:40:24
import java.util.*; * 其实这个题的关键就在于怎么分离第一次异或之后所得的a^b 首先要知道,a和b不是同一个数,那么异或结果不为0,那么结果的二进制肯定至少有一个是1 也就是说,为1的这一位上,a和b的二进制一个是0,一个是1 只要我们下一次异或只把是0(或者是1)的异或进来
展开全文
kyrielx
发表于 2022-03-21 23:04:04
思路:采用HashMap 先遍历一遍数组,采用HashMap对每个元素进行个数统计 再遍历一遍map,取出value=1的两个元素,装入一个新数组中 最后,对两个元素进行升序排序,返回新数组 import java.util.*; public class Solution { /*
展开全文
最好的pmgg
发表于 2021-03-10 17:53:04
HashMap做法,时间复杂度O(n) public int[] FindNumsAppearOnce (int[] array) { HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
展开全文
littlemuggle
发表于 2022-05-17 22:24:26
1.常规方法,把出现的元素放入一个集合,发现相同元素时从集合中拿出来 class Solution: def FindNumsAppearOnce(self , array: List[int]) -> List[int]: # write code here
展开全文
JIEIJ
发表于 2021-10-07 16:47:00
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型一维数组 * @param arrayLen int array数组长度 * @return int整型一维数组 * @return int* re
展开全文
问题信息
位运算
哈希
上传者:
牛客301499号
难度:
268条回答
1217收藏
6269浏览
热门推荐
通过挑战的用户
查看代码
wolfleong
2023-02-22 11:49:23
LittleS...
2023-02-20 11:08:57
ralphywj
2022-10-30 15:19:04
牛客89418...
2022-10-27 16:26:43
caixiao
2022-09-26 19:37:31
相关试题
Primary Arithmetic
字符串
基础数学
位运算
评论
(39)
旅行Ⅱ
动态规划
位运算
评论
(1)
Skew数
基础数学
位运算
评论
(48)
编程题 ,按照要求创建Java 应...
Java
评论
(1)
市场与销售的区别在哪里?
市场营销
评论
(1)
数组中只出现一次的两个数字
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ public int[] FindNumsAppearOnce (int[] nums) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型vector */ vector
FindNumsAppearOnce(vector
& nums) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型一维数组 # class Solution: def FindNumsAppearOnce(self , nums ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ public List
FindNumsAppearOnce (List
nums) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ function FindNumsAppearOnce( nums ) { // write code here } module.exports = { FindNumsAppearOnce : FindNumsAppearOnce };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型一维数组 # class Solution: def FindNumsAppearOnce(self , nums: List[int]) -> List[int]: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ func FindNumsAppearOnce( nums []int ) []int { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param numsLen int nums数组长度 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ int* FindNumsAppearOnce(int* nums, int numsLen, int* returnSize ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型一维数组 # class Solution def FindNumsAppearOnce(nums) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ def FindNumsAppearOnce(nums: Array[Int]): Array[Int] = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ fun FindNumsAppearOnce(nums: IntArray): IntArray { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ public int[] FindNumsAppearOnce (int[] nums) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ export function FindNumsAppearOnce(nums: number[]): number[] { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ func FindNumsAppearOnce ( _ nums: [Int]) -> [Int] { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ pub fn FindNumsAppearOnce(&self, nums: Vec
) -> Vec
{ // write code here } }
[1,4,1,6]
[4,6]
[1,2,3,3,2,9]
[1,9]