【LeetCode】Single Number 解題報告(Java & Python)__leetcode

來源:互聯網
上載者:User
【LeetCode】Single Number 解題報告(Java & Python)

[LeetCode]

https://leetcode.com/problems/single-number/ Total Accepted: 183838 Total Submissions: 348610 Difficulty: Easy Question

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? Ways

我實在是太弱了,位元運算的題基本都不會。看了高票答案才明白可以這麼做。

使用異或運算。

異或運算是可以交換順序的運算,也就是說和元素的排列順序無關,自己異或自己等於0,0異或別人等於別人。故,

we use bitwise XOR to solve this problem :

first , we have to know the bitwise XOR in java

1. 0 ^ N = N
2. N ^ N = 0

So….. if N is the single number

N1 ^ N1 ^ N2 ^ N2 ^…………..^ Nx ^ Nx ^ N

= (N1^N1) ^ (N2^N2) ^…………..^ (Nx^Nx) ^ N

= 0 ^ 0 ^ ……….^ 0 ^ N

= N

public class Solution {    public int singleNumber(int[] nums) {        int returnNum=0;        for(int i=0; i<nums.length; i++){            returnNum ^=nums[i];        }        return returnNum;    }}

AC:1ms

二刷 python

class Solution(object):    def singleNumber(self, nums):        """        :type nums: List[int]        :rtype: int        """        return reduce(lambda x, y: x ^ y, nums)
Date

2017 年 1 月 7 日
2018 年 3 月 14 日 – 霍金去世

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.