zoukankan      html  css  js  c++  java
  • Single Number and Single Number II

    [1] Given an array of integers, every element appears twice except for one. Find that single one.
    
    [2] Given an array of integers, every element appears three times except for one. Find that single one. (better solution is needed)
    
    Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

    题目中文意思就是说给定一个整数数组,数组中所有元素都出现了两次,只有一个元素只出现了一次,找出这个只出现了一次的元素。

    用异或来解决这类问题会非常简单。

    代码:

    int SingleNumber(int arr[] , int length)
    {
        int i , xor;
        for(xor = 0 , i = 0 ; i < length ; ++i)
            xor = xor ^ arr[i];
    
        return xor;
    }

    完整代码:

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int SingleNumber(int arr[] , int length)
     5 {
     6     int i , xor;
     7     for(xor = 0 , i = 0 ; i < length ; ++i)
     8         xor = xor ^ arr[i];
     9 
    10     return xor;
    11 }
    12 
    13 int main()
    14 {
    15     int arr[] = {2 , 1 , 2 , 1 , 3 , 4 , 3};
    16     int length = sizeof(arr)/ sizeof(int);
    17 
    18     cout<<SingleNumber(arr , length)<<endl;
    19 
    20     return 0;
    21    
    22 
    23 }
  • 相关阅读:
    Joda-Time 简介
    SimpleDateFormat 的线程安全问题
    SimpleDateFormat 的线程安全问题
    自定义类加载器
    自定义类加载器
    javap与 i++,++i
    javap与 i++,++i
    I/O模型
    I/O模型
    逻辑运算符(上) ---没用
  • 原文地址:https://www.cnblogs.com/heyonggang/p/3376679.html
Copyright © 2011-2022 走看看