leetcode136.只出现一次的数字c++实现

    xiaoxiao2023-10-03  185

    leetcode136.只出现一次的数字c++实现

    题目描述

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

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

    示例 1: 输入: [2,2,1] 输出: 1

    示例 2: 输入: [4,1,2,1,2] 输出: 4

    代码实现

    分析:1.数学运算异或符合交换律,2.一个数与自身异或结果为0,与0 异或结果为自身。 因此,我们知道,所有的数字异或的结果为只出现一次的那个数。

    class Solution { public: int singleNumber(vector<int>& nums) { int ans = 0; for(int i = 0; i < nums.size(); i++) { ans = ans ^ nums[i]; } return ans; } };
    最新回复(0)