只出现一次的数字

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 只出现一次的数字

 问题内容:

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

示例1:

输入: [2,2,1]

输出: 1

示例2:

输入: [4,1,2,1,2]

输出: 4

方法一:暴力求解法

这是最直观的一种求法,每次取数组中的一个数,通过计数来判断这个数的个数是否为1,有则返回这个元素,无则返回-1。

代码实现:

public static int appearOneNumber1(int[] arr){
        for (int i = 0; i < arr.length; i++) {
            int count = 0;
            int temp = arr[i];
            for (int j = 0; j < arr.length; j++) {
                if (arr[j] == temp){
                    count++;
                }
            }
            if (count == 1){
                return temp;
            }
        }
        return -1;
    }

image.gif

此方法虽然直观,但是代码麻烦,运行时间也相对下面求法长。

方法二:异或求解法

异或的特点是:

1、n ^ n = 0;即两个相同的数字异或是0

2、0 ^ n = n;即0和任何数字进行异或,结果就是那个任何数字。

因此将数组遍历异或,最终的结果就是个数为一的数。

代码实现:

public static int appearOneNumber(int[] arr){
        int temp = 0;
        //此处for循环为增强型for循环
        for (int i : arr) {
            temp ^= i;
        }
        return temp;
    }

image.gif


相关文章
【密码学】一文读懂SHAMIR门限方案
【密码学】一文读懂SHAMIR门限方案
2388 155
【密码学】一文读懂SHAMIR门限方案
springboot实现返回值国际化
springboot实现返回值国际化
springboot实现返回值国际化
|
前端开发
Window对象提示框、确认框、输入框、弹窗详解
本文目录 1. 背景 2. alert提示框 3. confirm确认框 4. prompt输入框 5. showModalDialog弹窗 6. 小结
1959 0
Window对象提示框、确认框、输入框、弹窗详解
|
9月前
|
存储 传感器 分布式计算
针对大尺度L1范数优化问题的MATLAB工具箱推荐与实现
针对大尺度L1范数优化问题的MATLAB工具箱推荐与实现
|
开发者 Docker 容器
hello world 镜像|学习笔记
快速学习 hello world 镜像
hello world 镜像|学习笔记
|
机器学习/深度学习 存储 算法
连续 Hopfield 网络-1| 学习笔记
快速学习连续 Hopfield 网络-1。
连续 Hopfield 网络-1| 学习笔记
|
机器学习/深度学习 人工智能 固态存储
又一家!天数智芯天垓100 产品卡与龙蜥操作系统完成产品兼容互认证
天数智芯天垓100 产品卡与龙蜥操作系统(Anolis OS)8 完成并通过相互兼容性测试认证,双方进行严格测试后,结果显示:相互兼容,功能正常,运行稳定。
又一家!天数智芯天垓100 产品卡与龙蜥操作系统完成产品兼容互认证
|
机器学习/深度学习 人工智能 自动驾驶
忆海原识发布类脑计算平台,下一代AI突破口到来!
近日,在 2022 WAIC AI 开发者日上,忆海原识创始人兼 CEO 任化龙发表主题演讲《类脑计算的发展与关键技术》。演讲中,他夯实细致地介绍了类脑智能的特点以及与传统技术的对比,以及忆海原识自主研发的 Ocean 类脑计算平台。
1221 0
忆海原识发布类脑计算平台,下一代AI突破口到来!
|
弹性计算 运维 监控
阿里云智能巡检管家特点优势与应用场景
作为阿里云云平台告警信息与监控的统一门户,铜雀专注于智能化巡检及问题诊断,是阿里云SRE混合云TAM和驻场服务团队日常工作中的首要工具。它能将TAM和驻场服务团队从日常繁琐的巡检工作中解放出来,将精力投入到更有价值的客户服务中去,通过打通云平台侧、租户侧及应用侧的信息,辅助应用运维及优化,并通过工具化手段提升现场问题分析定位的能力和速度。