1. 程式人生 > >136. Single Number (查詢陣列中只出現一次的數字)

136. Single Number (查詢陣列中只出現一次的數字)

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?

解法一:(HashSet)

import java.util.Hashtable;
public class Solution {
    public int singleNumber(int[] nums) {
        Set<Integer> set = new HashSet<Integer>();
		for(int i:nums){
			if(!set.add(i))
				set.remove(i);
		}
		Iterator<Integer> it = set.iterator();
		return it.next();
    }
}

解法二:(位操作)
public class Solution {
	public int singleNumber(int[] nums) {
		int c = 0;
		for (int i = 0; i < nums.length; i++)

		{
			c = c ^ nums[i];
		}

		return c;
	}
}


相關推薦

136. Single Number 查詢陣列出現數字

Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear

查詢陣列出現的數——Leetcode系列十四

Single Number   Given an array of integers, every element appears twice except for one.  Find

劍指offer系列十四二叉樹的深度,平衡二叉樹,陣列出現數字

二叉樹的深度 題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。 解題思路: 利用遞迴實現。如果一棵樹只有一個結點,那麼它的深度為1。遞迴的時候無需判斷左右子樹是否存在,因為如果該節點 為葉節點,它的左右

劍指offer——7二進位制1的個數&&陣列出現的兩個數字

位操作符簡單記憶: &(與):相同位同為1時結果為1 否則為0 |(或):相同位同為0時結果為0 否則為1 ^(異或):相同位相同結果為0 不同為1 ~(取反):0變成1 1變成0 m>>(右移)n:m的各二進位全部右移n位,低位丟

《劍指offer》系列 陣列出現數字Java

連結 牛客:陣列中只出現一次的數字 題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 思路 參考:陣列中只出現一次的數 我們從頭到位對陣列做異或運算,得到的最終結果應該是兩個不同數字做異或運算後的值。因為兩個數字

劍指offer-陣列出現數字陣列

題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 這題想到用map,類似於“陣列中出現次數超過一半的陣列”https://blog.csdn.net/Mr_xuexi/article/details/84555464 其中,data

劍指offer:陣列出現數字java

題目:一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次。請些程式找出這兩個只出現一次的數字。要求時間複雜度為O(n),空間複雜度為O(1).     如輸入陣列{2,4,3,6,3,2,5,5},因為只有4,6這兩個數字只出現一次,其他數字都出現了兩次,所以輸出4

陣列出現數字Java

題目: 一個整型數組裡面除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字,要求時間複雜度是O(n),空間複雜度是O(1)。 思路: 利用異或去重的思想 程式碼實現:

陣列出現數字java版

【題目描述】一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。 【解題思路1】暴力解法 //1. 對陣列進行排序。 //2. 遍歷一次陣列,將array[i]分別與array[i-1]和array[i+1]作比

劍指offer程式設計題JAVA實現)——第40題:陣列出現數字

github https://github.com/JasonZhangCauc/JZOffer 劍指offer程式設計題(JAVA實現)——第40題:陣列中只出現一次的數字

陣列出現的兩個數字百度面試題

題目要求: 在一個數組中,其餘數字都是成堆出現的,只有兩個數字出現了一次。儘快找到這兩個數字。 思路: 之前有過類似題,是一組陣列中只有一個數字出現了一次,其餘數字都是成對出現的。找到這個數字。這道題

劍指offer:陣列出現數字python

題目描述一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。# -*- coding:utf-8 -*- class Solution: # 返回[a,b] 其中ab是出現一次的兩個數字 def FindNumsAppe

Leetcode540. 二分查詢找出陣列出現的元素

Leetcode540. Single Element in a Sorted Array 題目 Given a sorted array consisting of only integers where every element appear

劍指offer之陣列出現數字

1.題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 2.問題分析 方法一: 可以使用map,統計每個數出現的次數,之後對兩個出現一次的數進行賦值 方法二: 這裡就數字的特性,首先我們需要知

牛客網——陣列出現數字

題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 1實在沒想到什麼好的解決方法,就用TreeSet解決,因為底層是紅黑樹實現,增加,刪除結點是logn,所以複雜度為O(nlogn) package 劍指offer;

陣列出現數字 java

陣列中只出現一次的數字 java 題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 程式碼1: //num1,num2分別為長度為1的陣列。傳出引數 //將num1[0],num2[0]設定為返回結果 i

劍指offer:(40知識遷移 :陣列出現數字

一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。 思路:    可以用位運算實現,如果將所有所有數字相異或,則最後的結果肯定是那兩個只出現一次的數字異或 的結果,所以根據異或的結果1所在的最低位,把數字分成兩半,每一半

【Java】 劍指offer(56-2) 陣列唯一隻出現數字 《劍指Offer》Java實現合集 56-1) 陣列出現的兩個數字 《劍指Offer》Java實現合集

  本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集   題目   在一個數組中除了一個數字只出現一次之外,其他數字都出現了三次。請找出那個只出現一次的數字。 思路   這道題中數字出現了三次,無法像56-1) 陣列

劍指offer 40. 陣列出現數字

原題 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 Reference Answer 思路分析 直接利用python中的dict進行次數統計就好了,用空間換時間。 # -*- coding:utf-8 -*- class

劍指offer_陣列出現數字

題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 # -*- coding:utf-8 -*- class Solution:     # 返回[a,b] 其中ab是出現一次的兩個數字   &n