博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Single Number
阅读量:4540 次
发布时间:2019-06-08

本文共 815 字,大约阅读时间需要 2 分钟。

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?

 

分析:给出一组数组,每个元素都出现两次,只有一个元素只出现一次。要求不需要额外的存储空间,时间复杂度是O(n)。我们想到一个性质:任何一个数字与自己异或的结果都为0,故可以想到数组中一个元素出现两次,只有一个出现一次。我们可以使用异或的思想来解决这题。例如{a,b,c,a,b,c,d}使用中间变量Temp,可以得出下面公式Temp=Temp^a^b^c^a^b^c^d=Temp^(a^a)^(b^b)^(c^c)^d=Temp^d.

代码实现如下:

class Solution {public:    int singleNumber(int A[], int n) {        int result=0;        for(int i=0;i

python实现的道理也一样:最近在看python,忍不住用python写了一下,练练手。

class Solution:    # @param A, a list of integer    # @return an integer    def singleNumber(self, A):        result=0        for a in A:            result^=a        return result

 

转载于:https://www.cnblogs.com/awy-blog/p/3569756.html

你可能感兴趣的文章
[USACO09FEB] 改造路Revamping Trails | [JLOI2011] 飞行路线
查看>>
Nuxt.js项目搭建配置踩坑
查看>>
App Store 审核指南 2017-12-11
查看>>
IDEA-Maven项目的jdk版本设置
查看>>
third day——面向对象编程
查看>>
Swift开发之粒子动画的实现
查看>>
所谓的成长,就是不断破局,成长很痛苦,不成长也便没有了甘甜
查看>>
左神算法书籍《程序员代码面试指南》——3_07找到二叉树中的最大搜索二叉子树【**】...
查看>>
PAT甲级——A1113 Integer Set Partition
查看>>
PAT甲级——A1114 Family Property【25】
查看>>
PAT甲级——A1115 Counting Nodes in a BST【30】
查看>>
PAT甲级——A1116 Come on! Let's C
查看>>
PAT甲级——A1119 Pre- and Post-order Traversals【30】
查看>>
PAT甲级——A1117 Eddington Number【25】
查看>>
PAT甲级——A1122 Hamiltonian Cycle【25】
查看>>
PAT甲级——A1118 Birds in Forest【25】
查看>>
PAT甲级——A1123 Is It a Complete AVL Tree【30】
查看>>
PAT甲级——A1120 Friend Numbers【20】
查看>>
PAT甲级——A1125 Chain the Ropes【25】
查看>>
PAT甲级——A1121 Damn Single【25】
查看>>