首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
数组中只出现一次的数(其它数出现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
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(329)
分享
提交结果有问题?
104个回答
79篇题解
开通博客
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条回答
329收藏
4603浏览
热门推荐
通过挑战的用户
查看代码
普信员
2023-02-25 22:27:45
One Peach
2023-02-03 15:41:50
牛客66216...
2022-12-07 19:48:43
牛客97079...
2022-09-19 03:14:53
Flawles...
2022-09-16 17:04:02
相关试题
Primary Arithmetic
字符串
基础数学
位运算
评论
(39)
Skew数
基础数学
位运算
评论
(48)
旅行Ⅱ
动态规划
位运算
评论
(1)
编程题 ,按照要求创建Java 应...
Java
评论
(1)
市场与销售的区别在哪里?
市场营销
评论
(1)
数组中只出现一次的数(其它数出现k次)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @param k int整型 * @return int整型 */ public int foundOnceNumber (int[] arr, int k) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型vector * @param k int整型 * @return int整型 */ int foundOnceNumber(vector
& arr, int k) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param arr int整型一维数组 # @param k int整型 # @return int整型 # class Solution: def foundOnceNumber(self , arr , k ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @param k int整型 * @return int整型 */ public int foundOnceNumber (List
arr, int k) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @param k int整型 * @return int整型 */ function foundOnceNumber( arr , k ) { // write code here } module.exports = { foundOnceNumber : foundOnceNumber };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param arr int整型一维数组 # @param k int整型 # @return int整型 # class Solution: def foundOnceNumber(self , arr: List[int], k: int) -> int: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @param k int整型 * @return int整型 */ func foundOnceNumber( arr []int , k int ) int { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @param arrLen int arr数组长度 * @param k int整型 * @return int整型 */ int foundOnceNumber(int* arr, int arrLen, int k ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param arr int整型一维数组 # @param k int整型 # @return int整型 # class Solution def foundOnceNumber(arr, k) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @param k int整型 * @return int整型 */ def foundOnceNumber(arr: Array[Int],k: Int): Int = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @param k int整型 * @return int整型 */ fun foundOnceNumber(arr: IntArray,k: Int): Int { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @param k int整型 * @return int整型 */ public int foundOnceNumber (int[] arr, int k) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @param k int整型 * @return int整型 */ export function foundOnceNumber(arr: number[], k: number): number { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @param k int整型 * @return int整型 */ func foundOnceNumber ( _ arr: [Int], _ k: Int) -> Int { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @param k int整型 * @return int整型 */ pub fn foundOnceNumber(&self, arr: Vec
, k: i32) -> i32 { // write code here } }
[5,4,1,1,5,1,5],3
4
[2,2,1],2
1