只出现一次的数字

简介: 只出现一次的数字

题目

题目:只出现一次的数字


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


说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?


示例 1:


输入: [2,2,1]

输出: 1


示例 2:


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

输出: 4


题解:


本题可以直接使用异或(^,相同为0,不同为1)去解决,先说方案,异或数组中的所有数,最后剩下的就是只出现一次的数


分析:


a^a = 0 0^b = b ,所以 a^a ^ b = b


拿个数举例子:


3 ^ 3 = 0011^0011 = 0000 = 0


0 ^ 2 = 0000^0010 = 0010 = 2


所以 3^3 ^2 = 2


最后所有出现偶数次的数异或后都成0了,0在和出现一次的(其实出现奇数次也是一样)异或,得到的就是我们要的那个数了


代码:


class Solution {
    public int singleNumber(int[] nums) {
        //用异或 ,因为 a^b^a = b 
        int res = 0;
        for (int num : nums) {
            //所以
            res ^= num;
        }
        return res;
    }
}


以上就是只出现一次的数字【LeetCode】的全部内容

相关文章
|
Linux API
嵌入式Linux中的 gpio、gpiod基本分析
嵌入式Linux中的 gpio、gpiod基本分析
1034 0
|
前端开发
Web前端开发------网页分组元素
Web前端开发------网页分组元素
|
调度 Windows Perl
进程和计划任务管理
进程和计划任务管理
164 0
|
9月前
|
机器学习/深度学习 人工智能 并行计算
Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈
Titans 是谷歌推出的新型神经网络架构,通过神经长期记忆模块突破 Transformer 在处理长序列数据时的瓶颈,支持并行计算,显著提升训练效率。
279 5
Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈
|
8月前
|
机器学习/深度学习 运维 资源调度
深度学习在资源利用率优化中的应用:让服务器更聪明
深度学习在资源利用率优化中的应用:让服务器更聪明
326 6
|
11月前
|
人工智能 自然语言处理 机器人
智能语音机器人底层系统设计逻辑机器人源码系统逻辑
简介: — 1 —智能客服背景智能语音客服机器人是在传统的客服系统基础上,集成了语音识别、语义理解、知识图谱、深度学习等多项智能交互技术,能准确理解用户的意图或提问,再根据丰富的内容和海量知识图谱,给予用户满意的回答。目前已广泛应用于金融、保险、汽车、房产、电商、政府等多个领域。
|
缓存 监控 Java
优化Spring Boot应用的数据库访问性能
优化Spring Boot应用的数据库访问性能
|
Unix Linux 对象存储
Linux 磁盘管理
Linux 磁盘管理
115 1
|
存储 人工智能 自然语言处理
利用Streamlit 和 Hugging Face 创建免费AI故事机
利用Streamlit 和 Hugging Face 创建免费AI故事机
371 0
|
敏捷开发 Java 测试技术
探索自动化测试在持续集成环境中的关键角色
【5月更文挑战第29天】 随着敏捷开发和持续集成(CI)实践的普及,自动化测试已成为确保软件质量和加快交付速度的核心要素。本文将深入探讨自动化测试在持续集成环境中所扮演的角色,分析其如何通过快速反馈和失败早期原则来优化软件开发周期。我们将讨论自动化测试策略的设计,包括单元测试、集成测试和端到端测试的最佳实践,以及如何利用现代测试框架和工具来提高测试效率和有效性。此外,文章还将展示自动化测试如何帮助团队实现持续部署和交付的目标,同时保持高质量标准。