class Solution {
public int singleNumber(int[] nums) {
//int key = 0;
int he = 0;
for(int num: nums)
{
he = he ^ num;
}
return he;
}
}
用hashmap
class Solution {
public int singleNumber(int[] nums) {
//int key = 0;
Map <Integer, Integer> seen = new HashMap<Integer, Integer>();
for(int num : nums)
{
//如果出现第二次,将对应key的value,即出现的次数变为2
if(seen.containsKey(num))
{
seen.replace(num, 2);
}
else
//输入key是num,value是出现的次数
{
seen.put(num, 1);
}
}
//迭代找到value是2所对应的key
Set<Integer> keySet = seen.keySet();
Iterator<Integer> it = keySet.iterator();
while(it.hasNext())
{
Integer key = it.next();
Integer value = seen.get(key);
if(value == 1)
{
return key;
}
}
return 0;
}
}
暴力解法
class Solution {
public int singleNumber(int[] nums) {
int k = 0;
int[] len = new int[nums.length];
for(int i = 0; i < nums.length; i++)
{
k = 0;
for(int j = 0; j < nums.length; j++)
{
if(nums[j] == nums[i])
k++;
}
if(k == 1)
{
return nums[i] ;
};
}
return 0;
}
}