力扣136. 只出现一次的数字

Problem: 136. 只出现一次的数字

文章目录

题目描述

思路

由于题目要求使用线性时间复杂度和常量级的空间复杂度 ,再加上找重复元素 这个特性,我们可以想到使用位运算来求解:

1.任何数与其本身异或得0,任何数与0异或得到其本身

2.由于只有一个数字出现一次,其余的数均出现两次,则定义int变量temp初始化为0,循环每次与nums[i]异或,最终返回temp,即为只出现一次的数

复杂度

时间复杂度:

O ( n ) O(n) O(n);其中 n n n为数组nums的大小

空间复杂度:

O ( 1 ) O(1) O(1)

Code

cpp 复制代码
class Solution {
public:
	/// <summary>
	/// Find a number that only appears once
	/// </summary>
	/// 
	/// <param name="nums"> The given array </param>
	/// <returns> int </returns>
	int singleNumber(vector<int>& nums) {
		int temp = 0;
		for (int i = 0; i < nums.size(); ++i) {
			temp ^= nums[i];
		}
		return temp;
	}
};
相关推荐
稚辉君.MCA_P8_Java3 分钟前
Gemini永久会员 go数组中最大异或值
数据结构·后端·算法·golang·哈希算法
会员果汁13 分钟前
双向链式队列-C语言
c语言·数据结构
Michelle802314 分钟前
机器学习实战操作手册
人工智能·算法·机器学习
HaiLang_IT25 分钟前
【目标检测】基于卷积神经网络的轨道部件(扣件、轨枕、钢轨)缺陷检测算法研究
算法·目标检测·cnn
草莓熊Lotso26 分钟前
《算法闯关指南:优选算法--前缀和》--31.连续数组,32.矩阵区域和
c++·线性代数·算法·矩阵
csuzhucong27 分钟前
斜转魔方、斜转扭曲魔方
前端·c++·算法
C语言不精1 小时前
c语言-优雅的多级菜单设计与实现
c语言·开发语言·算法
AI科技星1 小时前
张祥前统一场论:引力场与磁矢势的关联,反引力场生成及拉格朗日点解析(网友问题解答)
开发语言·数据结构·经验分享·线性代数·算法
C雨后彩虹1 小时前
最少交换次数
java·数据结构·算法·华为·面试
-森屿安年-1 小时前
二叉平衡树的实现
开发语言·数据结构·c++