zoukankan      html  css  js  c++  java
  • Leetcode--只出现一次的数字

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

    说明:

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

    示例 1:

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

    示例 2:

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

    C++解法

    /* 
      异或解法:异或运算满足交换律,a^b^a=a^a^b=b,因此ans相当于nums[0]^nums[1]^nums[2]^nums[3]^nums[4]..... 
      然后再根据交换律把相等的合并到一块儿进行异或(结果为0),
      然后再与只出现过一次的元素进行异或,这样最后的结果就是,只出现过一次的元素(0^任意值=任意值) */ class Solution { public: int singleNumber(vector<int>& nums) { int ans = nums[0]; for (int i=1; i<nums.size(); i++){ ans = ans^nums[i]; } return ans; } };

      

  • 相关阅读:
    Python使用笔记20--网络操作小练习
    python使用笔记19--网络操作
    python使用笔记18--写日志
    python使用笔记17--异常处理
    python使用笔记16--操作redis
    列车调度
    三角形
    点亮灯笼
    数据读取
    codevs 1243 网络提速
  • 原文地址:https://www.cnblogs.com/skyeisgood/p/12588729.html
Copyright © 2011-2022 走看看