136 Single Number

Given a non-empty array of integers, every element appears twice except for one. Find that single one.

Example:

Input: [2,2,1]
Output: 1

Input: [4,1,2,1,2]
Output: 4

Note:

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

解释下题目:

给定一个非空数组,其中每个数组都是有两个的,只有一个数字只有一个,找出那个数字

1. 抑或操作

实际耗时:0ms

public int singleNumber(int[] nums) {
        //异或操作会留下最后的那一个数
        int result = nums[0];
        for (int i = 1; i < nums.length; i++) {
            result ^= nums[i];
        }
        return result;
    }

  两个相同的数字异或是0

时间复杂度O(n)
空间复杂度O(1)

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

推荐阅读更多精彩内容

  • title: Single Numbertags:- single-number- No.136- simple-...
    yangminz阅读 115评论 0 0
  • 问题: Given an array of integers, every element appears twi...
    Cloudox_阅读 207评论 0 0
  • Leetcode: 136. Single NumberGiven a non-empty array of in...
    bin_guo阅读 68评论 0 0
  • 1 抱怨就是凡事责怪他人,从不在主观方面找内因,一味找外因。在李笑来提醒“你最应该戒除的最大恶习就是抱怨”之前,我...
    黄虎阅读 465评论 5 5
  • 初来的夜晚雷电闪闪,地动山摇。校道的树木簌簌作响,有一只呲牙的大松鼠藏不住,在树顶上对着雷电仰嚎。隔壁孔庙的老猫...
    吴十二少阅读 362评论 0 0