Given an array of numbersnums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.
For example:
Givennums = [1, 2, 1, 3, 2, 5], return[3, 5].
Note:
[5, 3]is also correct.
這是今天剛加上去的一道題。
個(gè)人覺(jué)得這道題和之前single number的兩道差不多。依舊用hashset即可做出。
唯一要注意的就是最后return的時(shí)候不能直接return hashset。為了偷懶我直接弄了個(gè)新的int[]。
代碼如下。~
public class Solution { public int[] singleNumber(int[] nums) { if(nums.length==2&&nums[0]!=nums[1]){ return nums; } HashSet<Integer> store=new HashSet<Integer>(); HashSet<Integer> result=new HashSet<Integer>(); for(int i=0;i<nums.length;i++){ if(!result.add(nums[i])){ result.remove(nums[i]); store.add(nums[i]); }else{ if(store.contains(nums[i])){ result.remove(nums[i]); } } } int[] PRint=new int[2]; print[0]=result.iterator().next(); result.remove(result.iterator().next()); print[1]=result.iterator().next(); return print; }}新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注