Leetcode - Single Number III

Paste_Image.png

My code:

public class Solution {
    public int[] singleNumber(int[] nums) {
        if (nums == null || nums.length == 0)
            return null;
        
        int result = 0;
        for (int i = 0; i < nums.length; i++)
            result ^= nums[i];
        int w = 1;
        while ((result & w) == 0)
            w = w << 1;
        int x1 = 0;
        int x2 = 0;
        for (int i = 0; i < nums.length; i++) {
            if ((nums[i] & w) == 0)
                x1 ^= nums[i];
            else if ((nums[i] & w) != 0)
                x2 ^= nums[i];
        }
        int[] ret = new int[2];
        ret[0] = x1;
        ret[1] = x2;
        return ret;
    }
}

My test result:

这次题目也是属于基本放弃的那种。具体做法看这个博客。
Bit manipulation 真的想不到啊。。
http://bookshadow.com/weblog/2015/08/17/leetcode-single-number-iii/

**
总结: Bit manipulation
**

Anyway, Good luck, Richardo!

看了答案做了出来。我的做法还真是不错。看了我也懂了。。

Anyway, Good luck, Richardo! -- 08/05/2016

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Question:**Given an array of integers, every element appe...
    Richardo92阅读 2,962评论 1 1
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,352评论 0 33
  • My code: My test result: 这次题目不难,和之前的那些combination, permut...
    Richardo92阅读 3,427评论 0 1
  • 1. 在小学不知几年级,我经常穿一件藕荷色圆鼓鼓的短款羽绒服,特别暖和。年三十上午爸爸带我去买爆竹烟花,我在吊带背...
    蓝莓大福阅读 4,417评论 5 2