面试题17.04.消失的数字

题目描述

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

注意:本题相对书上原题稍作改动

示例

示例 1:

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

 

示例 2:

输入:[9,6,4,2,3,5,7,0,1]
输出:8

解题思路

使用一个for循环来让从0-numSize-1的数与num[]的元素异或,别忘了补上numsSize,即可得到不成对的数为消失的数字

代码

int missingNumber(int* nums, int numsSize){
    
    
    int result=numsSize;
    for(int i=0;i<numsSize;i++){
    
    
        result^=i^nums[i];
    }return result;

}

链接

猜你喜欢

转载自blog.csdn.net/qq_44722674/article/details/112258528