singleNumber编程题
我没有想到异或的方式,主要思想是遍历数组的同时对数字进行计数,这里使用hasmap来计数,如果map中没有这个数字则加入map且置为1,否则将获得的值加一继续put进去
遍历完找到数量为一的数字即可。
代码如下
import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; public class Solution { public int singleNumber(int[] A) { int result = 0; Map<Integer,Integer> map = new HashMap<Integer,Integer>(); for(int i = 0; i < A.length; i++){ if(map.get(A[i]) == null){ map.put(A[i],1); }else { map.put(A[i], map.get(A[i])+ 1); } } for(Entry <Integer, Integer> entry: map.entrySet()){ if(entry.getValue() == 1){ result = entry.getKey(); break; } } return result; } }