码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 136. Single Number

时间:2017-02-25 21:16:46      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:out   companies   mem   find   给定一个整数数组   single   app   this   using   

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?

Subscribe to see which companies asked this question.

【题目分析】

给定一个整数数组,数组中的元素都正好出现两次,除了其中一个元素。找出这个元素。

【思路】

这是一个位运算的题目。在位运算中,异或运算有这样的性质,一个数与同一个数异或两次,无论顺序如何,都会得到这个数本身。在这个题目中由于其他元素都正好出现两次,当把所有的元素异或到一起的话,这些元素正好都被消除,最后的结果就是正好出现一次的那个元素。

如果考虑元素的每一位的话,如果偶数个1异或,最后的结果位0。

【java代码】

public class Solution {
    public int singleNumber(int[] nums) {
        int result = 0;
        for(int i : nums) {
            result = result ^ i;
        }
        return result;
    }
}

 

LeetCode 136. Single Number

标签:out   companies   mem   find   给定一个整数数组   single   app   this   using   

原文地址:http://www.cnblogs.com/liujinhong/p/6442795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!