zoukankan      html  css  js  c++  java
  • leetcode136 Single Number

    题意:数组中每个数字都出现了两次,只有一个出现一次,找出这个数

    思路:很明显不能从头到位遍历来找,首先是超时的原因,再次就是这样很没意思·····但是却没想到什么好办法,因为不了解按位异或(XOR)。异或就是相同的两个数结果为0,不同的为1。根据交换律我们知道,数组中两两异或的结果就剩最后那一个落单的数了,因为两个相同的数异或结果为0。所以其实这题就很简单了,只是如果没想到或者根本不知道异或就无法好好解题了。

    代码:

    int singleNumber(vector<int>& nums) {
            int ans = 0;
            for(int n : nums)
            {
                ans ^= n;
            }
            return ans;
        }
  • 相关阅读:
    案例分析
    202103226-1 编程作业
    阅读任务
    准备工作
    结对作业
    案列分析
    202103226-1 编程作业
    《构建之法》有感
    准备工作
    案例分析作业
  • 原文地址:https://www.cnblogs.com/puyangsky/p/4638234.html
Copyright © 2011-2022 走看看