zoukankan      html  css  js  c++  java
  • LintCode: Single Number

    C++

    (1)异或操作

    3^3=0

    (2)for (auto &i : Obejuct) {}

     1 class Solution {
     2 public:
     3     /**
     4      * @param A: Array of integers.
     5      * return: The single number.
     6      */
     7     int singleNumber(vector<int> &A) {
     8         // write your code here
     9         int ret = 0;
    10         for (auto &i : A) {
    11             ret ^= i;
    12         }
    13         return ret;
    14     }
    15 };

    本题扩展

    1.一个数组中有两个元素只出现一次,其他所有元素都出现两次,求这两个只出现一次的元素

    [解题思路]

    将数组所有元素都进行异或得到一个不为0的结果,根据这个结果中的不为0的某一位将数组分成两组

    将两组中的元素进行异或,如两个数组的异或值都不为0,则得到最后结果

    2.一个数组中有一个元素只出现1次,其他所有元素都出现k次,求这个只出现1次的元素

    [解题思路]

    当k为偶数时,同lss

    当k为奇数时,将数组中每个元素的每一位相加mod k,得到结果即位出现1次的元素,时间复杂度O(nlen),空间复杂度为O(1)

  • 相关阅读:
    简单计算器
    dfs(通过控制点的编号来得出每个点的坐标)
    dfs(通过控制点的编号来得出每个点的坐标)
    神奇的 组合数
    神奇的 组合数
    B. Light It Up
    B. Light It Up
    Python 字符串
    Python radians() 函数
    Python degrees() 函数
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/5109556.html
Copyright © 2011-2022 走看看