https://leetcode.cn/problems/single-number/description/?envType=study-plan-v2&envId=top-interview-150
136. 只出现一次的数字
已解答
简单
相关标签
相关企业
提示
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间’
解题思路
使用与或操作,依次进行与或,那么重复两次的数经过与或后变成0。最后只留下一个单独的数。
如数组 2 2 1
2 :010
2: 010
与或结果:000.
class Solution {
public:int singleNumber(vector<int>& nums) {//使用或非操作。依次进行或非运算,重复的数则或非为0int num = nums.size();int single = nums[0];for(int i=1;i<num;i++){single ^= nums[i];}return single;}
};