首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
数组中只出现一次的两个数字
[编程题]数组中只出现一次的两个数字
热度指数:125141
时间限制: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)
邀请回答
收藏(1285)
分享
提交结果有问题?
275个回答
312篇题解
开通博客
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号
难度:
275条回答
1285收藏
7173浏览
热门推荐
通过挑战的用户
查看代码
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
相关试题
Skew数
基础数学
位运算
评论
(49)
旅行Ⅱ
动态规划
位运算
评论
(1)
Primary Arithmetic
字符串
基础数学
位运算
评论
(39)
执行以下程序,理论上输出的结果应最...
360集团
Python
算法工程师
2019
评论
(1)
来自
360公司-2019校招...
以下描述正确的是
Java
评论
(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]