美文网首页
求数组中的唯一的数字?

求数组中的唯一的数字?

作者: 爱学习的代代 | 来源:发表于2023-03-18 23:54 被阅读0次

题目:给定一个非空的整数数组,除了某个元素进出现一次以外,其他元素均出现2次,请找出哪个只出现一次的元素?

说明: 算法应具有线性时间复杂度,可以不使用额外的空间来实现吗?

题目考察的知识点异或运算, 其中异或运算满足如下定理

1、异或运算满足结合律 即 a(bc) = (ab)c
2、异或运算满足交换律 即 a^b = b ^a
3、任意数与自身异,均是0 即 a^a = 0
4、任意一个数与0异或,均是其本身 即a ^ 0 = a

测一测是否理解了?👇🏻
临时插入题目:不用新的变量,完成两个数的交换?

    int a = 2;
    int b = 3;

    System.out.println("a的值是:" + a  + "\t b的值是: " + b);

    a = a ^ b;

    b = a ^ b;

    a = a ^ b;

    System.out.println("a的值是:" + a  + "\t b的值是: " + b);

    /*
    * 解析:
    * 第二行中 b = a ^ b 将第一行中的a = a ^ b代入 即
    *
    * b = (a ^ b) ^ b  ==> a ^ b ^ b ==> a ^ (b ^ b) = a ^ 0 = a;
    *
    * 所以说此时 b = a
    *
    * 第三行中 a = a ^ b 同理做运算,将第二行中的代入
    * a = a ^ b = a ^ (a ^ b) = b;
    *
    * 此时 a = b;

题目的代码解答如下:


        int[] arr = {1,2,2,3,3,4,4};

        //方法一:采用异或运算的形式去解决
        //因为a^a = 0 且 a^0 = a, 在通过交换律,这样最后只会剩下最后一个单个的数

        int result = 0;

        for(int i: arr) {
            result = result ^ i;
        }

        System.out.println("唯一的数是:" + result);

运行结果:


结果.png

相关文章

  • 2021-03-05QQ音乐直播后台一面

    求数组中唯一重复的数字 求字符串数组中重复的字符串 求文本文件中出现频率前K的单词 采用linux命令实现问题3 ...

  • 和我一起在LeetCode刷题吧(每天一题LeetCode

    目 录 分类 1.数组 和为零的N个唯一整数 搜索插入位置 有多少小于当前数字的数字 数组中重复的数字 二维数组中...

  • function

    求任意数组的最大值 求任意数组的最小值 //求任意范围数字和 求任意数字的总和 // type 检测参数数据类型...

  • 面试题56_2:数组中唯一只出现一次的数字

    数组中唯一出现一次的数字。 在一个数组中除了一个数字只出现一次之外,其他数字都出现了三次,请找出那个只出现一次的数字

  • Swift —— 6个快捷方法(数组求和、查找数组中最大或最小元

    1、将数组中每个元素的值乘以 2 2、求一组数字的和 3、找到数组中最小(或最大)的元素 4、使用析构交换元组中的...

  • 集合

    数组和切片 创建切片跟创建数组唯一的区别在于 Type 前的“ [] ”中是否有数字,为空,则代表切片,否则则代表...

  • LeetCode 每日一题 [67] 0~n-1中缺失的数字

    LeetCode 0~n-1中缺失的数字 [简单] 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个...

  • 手撕数组

    【面试题51:数组中重复的数字】 【面试题32:求从1到n的整数中1出现的次数】 【面试题33:把数组排成最小的数...

  • DP训练——树状数组优化DP

    树状数组DP BZOJ1264题意给出两个长度均为的数字序列,求。数据保证每个序列中,到共个数字每个必然出现次。题...

  • 剑指offer题集

    [3] 数组中重复的数字 题目一:找出数组中重复的数字 Description 在一个长度为n的数组里的所有数字都...

网友评论

      本文标题:求数组中的唯一的数字?

      本文链接:https://www.haomeiwen.com/subject/zayerdtx.html