Leetcode-136:Single Number

来源:互联网 发布:百度阅读json文件转换 编辑:程序博客网 时间:2024/04/29 01:26

[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

[思路] 1.哈希表:创建一个HashMap,key值为数组元素,value值为出现次数,for循环,若未出现在哈希表中,将此元素put,反之,则remove,最后哈希表中  只剩下出现一次的元素;

         2.异或:出现两次的元素都抵消了,只剩下出现一次的元素。

//HashTable public static int singleNumber(int[] nums) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (int i =0; i < nums.length; i++) { if (!map.containsKey(nums[i])) { map.put(nums[i], 1);} else {map.remove(nums[i]);} } for (int i = 0; i < nums.length; i++) { if (map.containsKey(nums[i])) {return nums[i];} } return 0; }
//异或 public static int singleNumber(int[] nums) {         int res = 0; for (int i = 0; i < nums.length; i++) { res = res ^ nums[i]; } return res; } 


0 0
原创粉丝点击