我是靠谱客的博主 还单身蜗牛,最近开发中收集的这篇文章主要介绍只出现一次的数字,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

说明:

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

示例 1:

输入: [2,2,1]
输出: 1

示例 2:

输入: [4,1,2,1,2]
输出: 4

方法:

1.暴力

2.set/map

3.排序后判断a[i]!=a][i-1]&&a[i]!=a[i+1]的就是答案

4.位运算,异或 ^

性质:

1.一个数与两个相同的数异或结果还是这个数

2.一个数与0异或结果还是这个数

class Solution {
    public int singleNumber(int[] nums) {
        int ans = nums[0];
        for(int i=1,len=nums.length;i<len;i++)
            ans ^= nums[i];
        return ans;

    }
}
 public static void solove() {
        int []num={4,1,2,1,2};
        HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();
        for(int i=0;i<num.length;i++){
            Integer value=map.get(num[i]);
            map.put(num[i],(value == null)?1:value+1);
        }
        for(Integer i : map.keySet()){
            if(map.get(i)==1)
                System.out.println(i);
        }

# -*- coding:utf-8 -*-
class Solution:
    # 返回[a,b] 其中ab是出现一次的两个数字
    def FindNumsAppearOnce(self, array):
        # write code here
        if not array:
            return 
        res = []
        for one in array:
            if one in res:
                res.remove(one)
            else:
                res.append(one)
        return res

 

最后

以上就是还单身蜗牛为你收集整理的只出现一次的数字的全部内容,希望文章能够帮你解决只出现一次的数字所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部