力扣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;
	}
};
相关推荐
allan bull10 分钟前
在节日中寻找平衡:圣诞的欢乐与传统节日的温情
人工智能·学习·算法·职场和发展·生活·求职招聘·节日
似水এ᭄往昔26 分钟前
【C++】--封装红⿊树实现mymap和myset
开发语言·数据结构·c++·算法·stl
咕噜企业分发小米28 分钟前
腾讯云向量数据库HNSW索引如何更新?
人工智能·算法·腾讯云
lcreek33 分钟前
LeetCode215. 数组中的第K个最大元素、LeetCode912. 排序数组
python·算法·leetcode
Einsail1 小时前
天梯赛题解(3-6)
算法
杜子不疼.1 小时前
【LeetCode 852 & 162_二分查找】山脉数组的峰顶索引 & 寻找峰值元素
算法·leetcode·职场和发展
山楂树の1 小时前
搜索插入位置(二分查找)
数据结构·算法
helloyangkl1 小时前
Draco——参数说明
算法
!chen2 小时前
自适应滤波算法FPGA实现思路
算法·fpga开发
救救孩子把2 小时前
51-机器学习与大模型开发数学教程-4-13 EM算法与混合模型
人工智能·算法·机器学习