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