leetcode 136

2017-10-17  本文已影响0人  xbinng
int singleNumber(vector<int>& nums){

        for(int i=0;i<nums.size()-1;i++){
            nums[i+1]=nums[i]^nums[i+1];
        }
        return nums[nums.size()-1];
    }
    int array[]={1,1,2,2,3,5,5};
    size_t count= sizeof(array)/sizeof(int);
    vector<int> vec(array,array+count);
    cout<<so.singleNumber(vec)<<endl;

相同数异或为0,不同数异或为1,所以很容易找到数组中只出现一次的数。

int普遍是32位,而size_t在主流平台中都是64位。
类型名称非常直观,它的含义就是“size type”,大小的类型,也直接意味着它是sizeof运算符结果的类型。使用的时候把它当做其它的,比如,某种计数变量的类型是没有意义的,也是错误的。它唯一正确的用途就是“代表某块内存的大小”等等类似的用途,这显然很容易想到是无符号的。比如:void* malloc(size_t),这里显然参数意味着“某块内存的大小”

size_t详细介绍

http://jeremybai.github.io/blog/2014/09/10/size-t

上一篇 下一篇

猜你喜欢

热点阅读