首页 > 试题广场 >

数组中只出现一次的数(其它数出现k次)

[编程题]数组中只出现一次的数(其它数出现k次)
  • 热度指数:31845 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的整型数组 arr 和一个整数 k(k>1) 。
已知 arr 中只有 1 个数出现一次,其他的数都出现 k 次。
请返回只出现了 1 次的数。

数据范围:  ,  , 
进阶:时间复杂度 ,空间复杂度 



示例1

输入

[5,4,1,1,5,1,5],3 

输出

4 
示例2

输入

[2,2,1],2

输出

1
头像 LifelongCode
发表于 2021-02-04 16:13:55
解法1:排序 public int foundOnceNumber(int[] arr, int k) { Arrays.sort(arr); for(int i = 0; i<arr.length-1; i++){ if(arr[i 展开全文
头像 牛客876682763号
发表于 2021-04-01 15:36:48
思路:这题思路是把数字拆分成位。int型是C++的内置类型,一般机器上为32位,本题中条件特殊每个数字都有出现k次,只有一个数字出现一次,自然想到对每位上的数字求和后%k,这样求余得到的数字就是我们所想要的。复杂度分析:时间复杂度O(n),空间复杂度O(1) class Solution {publ 展开全文
头像 牛客411656926号
发表于 2021-10-26 17:38:57
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param arr int一维数组 # @param k int # @return int # class Solution: def foundOnceNumber(self , arr 展开全文
头像 已注销
发表于 2021-10-24 12:36:31
class Solution: def foundOnceNumber(self , arr , k ): # write code here b = sorted(arr) i = 0 while i <len(b)-1 展开全文
头像 xqxls
发表于 2021-07-31 11:15:44
题意整理 给定一个数组。 求数组中只出现一次的数。 方法一(哈希表) 1.解题思路 记录数组中每一个数出现的次数,并将数组中的数作为键,出现次数作为值添加到哈希表中,然后遍历哈希表,当某个键对应的值为1时,直接返回对应的键,即找到了只出现一次的数。 动图展示: 2.代码实现 import ja 展开全文
头像 馒头2020
发表于 2021-04-30 10:03:00
题目描述 给定一个整型数组 arr 和一个整数 k(k>1)。已知 arr 中只有 1 个数出现一次,其他的数都出现 k 次。请返回只出现了 1 次的数。 示例 输入 [5,4,1,1,5,1,5],3输出4 解题思路 将所有数字的二进制对应位置进行求和,用过 Excel 的胖友应该都知 展开全文
头像 王清楚
发表于 2021-03-25 16:42:16
利用二进制,记录一下每一位上1出现的次数。然后除k,如果余1的话就说明只出现了一次的数这一位是1。c++ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 展开全文
头像 愿每个人都能被温柔以待
发表于 2021-07-26 22:41:04
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int一维数组 * @pa 展开全文
头像 牛客355466126号
发表于 2021-06-07 14:24:23
提供一种当k为偶数时的简便思路,但并不适用于k为奇数:当k为偶数时,说明重复的数字是可以两两抵消的,什么样的操作可以让重复数字两两抵消呢?对就是亦或,任意两个相同的数字按位进行亦或运算结果一定为0,同时亦或运算是满***换律的,我们始终可以把相同的数字放在一起亦或消去,最后只剩下0与那个出现只有一次 展开全文
头像 牛客877483763号
发表于 2021-11-10 10:28:42
这道题我之前想了好几种方法,但是复杂度基本都是n^2,看评论才知道的算法,而且题目提示了,考察的知识点是位运算,但是比较郁闷的是,如果要返回的结果是负数,答案还是错的,但是结果转化成二进制后每一位的01是完全一致的,所以在负数的时候还需要考虑正负转换,另外把自己写的三种解法也贴在后面吧,用jupyt 展开全文

问题信息

上传者:牛客301499号
难度:
104条回答 4603浏览

热门推荐

通过挑战的用户

查看代码
数组中只出现一次的数(其它数出现k次)