美文网首页
面试题 17.04. 消失的数字

面试题 17.04. 消失的数字

作者: itbird01 | 来源:发表于2022-01-26 06:18 被阅读0次
题目.png

题意:数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?

解法1:
我们假设数组异或结果为 123...^1000 = T (此时的T中包含两个n),那么根据结合律和自反律,T^n 实际上就是1~1000的实际值的异或结果,原因的话,很简单,T中的两个n异或之后为0,也就是说T中已经没有n了,所以 T^n == 1~1000的实际值的异或结果
由上面的推导可知,我们把T再和1~1000的异或结果 去异或,则为所求的结果n

解题遇到的问题

后续需要总结学习的知识点

##解法1
class Solution {
    public int missingNumber(int[] nums) {
        int k = nums.length, k1 = 0;
        for (int i = 0; i < nums.length; i++) {
            k = k ^ i;
            k1 = k1 ^ nums[i];
        }
        return k ^ k1;
    }
}

相关文章

  • 面试题 17.04. 消失的数字

    题意:数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完...

  • 修改程序角标上的数字

    数字是为角标数字,数字为0,角标消失。

  • 剑指offer面试题分类总结

    数组: 面试题3:数组中重复的数字面试题4:二维数组中的查找面试题21:调整数组顺序使奇数位于偶数前面面试题39:...

  • 剑指offer

    面试题3——数组中重复的数字 使用LinkedHashMap,有序存放。 面试题4——二维数组中的查找 首先选...

  • 手撕数组

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

  • 面试题45:圆圈中最后剩下的数字

    面试题45:圆圈中最后剩下的数字 题目 这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这...

  • 1579-圆圈中最后剩下的数字

    圆圈中最后剩下的数字 题目 面试题62. 圆圈中最后剩下的数字0,1,,n-1这n个数字排成一个圆圈,从数字0开始...

  • 剑指offer第二版-44.数字序列中某一位的数字

    本系列导航:剑指offer(第二版)java实现导航帖 面试题44:数字序列中某一位的数字 题目要求:数字以012...

  • 【LeetCode】数组中数字出现的次数-官方题解学习

    题目及其链接如下: 面试题56-1 数组中数字出现的次数 一个整型数组 nums 里除两个数字之外,其他数字都出现...

  • Javascript 拆解合数算法

    面试题,实现一个方法,fn(num)接收一个数字参数,要求输出数字数组,数组内数字的乘积等于传入的参数,要求输出数...

网友评论

      本文标题:面试题 17.04. 消失的数字

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