leetcode之找光棍数

题目:

Given an array of integers, every element appears twice except for one. Find that single one.

Note:

Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

思路:

这一题原来听过,对位运算敏感度人可能会想到两个相等的数进行异或运算结果为零,而零与任何不为零的数异或运算结果都为这个不为零的数本身,基于此,把数组内所有元素串联进行异或,那些配对的经过异或都变成零了,而落单的最终一定是和零进行异或,结果必然是它自己。异或的顺序要不要紧呢?不要紧,异或运算是有结合律的,不在意顺序,所以不用在意这个细节。

代码:

class Solution {
public:
    int singleNumber(int A[], int n) {
        int re;
        for(int i=0;i<n;i++)
        {
            re=re^A[i];
        }
        return re;
    }
};
时间: 2024-10-08 10:33:55

leetcode之找光棍数的相关文章

2015年百度之星初赛(1) --- B 找连续数

找连续数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 179    Accepted Submission(s): 65 Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的. 现在小度熊增加题目难度,他不想知道是否有这样的 k 的区

百度之星 2015 初赛(1) 1002 找连续数

找连续数 Accepts: 401 Submissions: 1911 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的. 现在小度熊增加题目难度,他不想知道是否有这样的 k 的区间,而是想知道有几个这样的 k 的区间. Input

循环-23. 找完数

循环-23. 找完数(20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈建海(浙江大学) 来源 ZOJ 所谓完数就是该数恰好等于除自身外的因子之和.例如:6=1+2+3,其中1.2.3为6的因子.本题要求编写程序,找出任意两正整数m和n之间的所有完数. 输入格式: 输入在一行中给出2个正整数m和n(0<m<=n<=10000),中间以空格分隔. 输出格式: 逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数

【SQL】找出行数与自增标识值不相等的表(即有缺行)

原文:[SQL]找出行数与自增标识值不相等的表(即有缺行) 环境:mssql ent 2k8 r2 原理:遍历所有含自增列的用户表,用sp_spaceused过程分别获取每张表的行数并写入临时表,然后使用IDENT_CURRENT函数获取表的最大标识值,比较二者并返回结果 IF OBJECT_ID('tempdb..#TableRowCount','U') IS NOT NULL DROP TABLE #TableRowCount GO CREATE TABLE #TableRowCount (

hdu 5247 找连续数(思维)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5247 找连续数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1207    Accepted Submission(s): 435 Problem Description 小度熊拿到了一个无序的数组,对于这个数组.小度熊想知道能否找到一

HDU 5247 找连续数 (set妙用)

找连续数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1008    Accepted Submission(s): 362 Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的. 现在小度熊增加题目难度,他不想知道是否有这样的 k

小光棍数

描述 最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数.他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少? 输入 有多组测试数据.第一行一个整数n,表示有n组测试数据.接下来的每行有一个整数m. 输出 输出第m个小光棍数. 样例输入 1 1 样例输出 471 同余定理 即 a三b mod m  则存在一个k使得a=b+k*m      这道题 a = 47

2015 百度之星 1002 找连续数 暴力

找连续数 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1751 Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的. 现在小度熊增加题目难度,他不想知道是否有这样的 k 的区间,而是想知道有几个这样的 k 的区间. Input 输入包含一组测试数据. 第一行包含两个整数n,m,n代表数组中有多少个数

每日一水-----小光棍数

描述:最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数.他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少? 输入:有多组测试数据.第一行一个整数n,表示有n组测试数据.接下来的每行有一个整数m 输出:输出第m个小光棍数. 输入数据: 1 输出数据: 471 /*************************************************