LeetCode每日刷题:只出现一次的数字

题目:

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

LeetCode每日刷题:只出现一次的数字_第1张图片

解题思路:这道题有三种解决方法:

1.利用hashmap,出现一次就记录一次,然后返回只出现了一次的数字

2.利用hasset的方法,出现的第一次为true的特性,出现第二次就返回false

3.利用位运算的方法,异或,如果两个数相等,异或之后为0,如果0和一个数异或,那么就会等于不为0的数(我们这里用位运算的方法)

代码实现:

class Solution {
 public int singleNumber(int[] nums) {
 int ans =0;
 for(int i=0;i

你可能感兴趣的:(leetcode,算法,职场和发展)