Single Number位运算基础问题--力扣101算法题解笔记

10.2Single Number位运算基础问题

题目描述

给定一个整数数组,这个数组里只有一个数字出现了一次,其余数字出现了两次,求这个只出现一次的数字。

输入输出样例

Input :[4, 1, 2, 1, 2]

Output:4

输入一个一维整数数组,输出是该数组内的一个整数

题解

我们可以利用x^x = 0 和x ^ 0 = x 的特点,将数组内所有的数字进行按位异或。出现两次的所有数字按位异或的结果是0,0与出现一次的数字亦或可以得到这个数字本身。

cpp 复制代码
#include <iostream>
#include <vector>
using namespace std;

int sigleNumber(vector<int>& nums) {
        int ans = 0;
        for (const int& num : nums) {
                ans = ans ^ num;
        }
        return ans;
}

int main() {
        vector<int> ans = { 4,1,2,1,2 };

        cout << sigleNumber(ans) << endl;

        return 0;
}
相关推荐
靠沿1 小时前
【优选算法】专题十二——栈
算法
李昊哲小课2 小时前
Python 高级数据结构
开发语言·数据结构·python
无心水2 小时前
【任务调度:框架】10、2026最新!分布式任务调度选型决策树:再也不纠结选哪个
人工智能·分布式·算法·决策树·机器学习·架构·2025博客之星
我头发还没掉光~2 小时前
【C++写详细总结①】从for循环到算法初步
数据结构·c++·算法
雨落在了我的手上2 小时前
C语言之数据结构初见篇(2):顺序表之通讯录的实现(续)
c语言·开发语言·数据结构
【数据删除】3482 小时前
计算机复试学习笔记 Day41
笔记·学习·算法
上海锟联科技2 小时前
什么是DAS分布式光纤声波传感系统?原理与应用解析
数据结构·分布式·算法·分布式光纤传感
篮l球场2 小时前
LRU 缓存
算法·leetcode
blackicexs3 小时前
第八周第五天
数据结构·c++·算法