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; } };

      

  • 相关阅读:
    考研_数据结构
    快速排序模板
    nginx设置跳转https
    PHP 构造函数
    js scroll事件
    php获取url中的参数
    js 的cookie问题
    yii2关联表
    sql优化之concat/concat_ws/group_concat
    yii2.0 url美化-apache服务器
  • 原文地址:https://www.cnblogs.com/skyeisgood/p/12588729.html
Copyright © 2011-2022 走看看