️️️️Take your time ! ️️️️
个人主页:大魔王
所属专栏:魔王的修炼之路–数据结构
如果你觉得这篇文章对你有帮助,请在文章结尾处留下你的点赞和关注,支持一下博主。同时记得收藏✨这篇文章,方便以后重新阅读。
面试题 17.04. 消失的数字
两种方法:
第一种:
是这个题最简单的方法:让数组里的n个数全部相加,再让从0到n+1个自然数相加减去数组相加的值.。
第二种:
让数组里的每个元素都按位异或一次,然后再和0~n+1个自然数按位异或一下,那么结果的数就是缺的那个数。
补充:
按位异或相同的数后结果为0。
按位异或就是二进制位相同为0,不同为1。
int missingNumber(int* nums, int numsSize){
int n = 0;
for(int i =0;i<numsSize+1;i++)
{
n += i;
}
for(int i = 0;i<numsSize;i++)
{
n -= nums[i];
}
return n;
}
int missingNumber(int* nums, int numsSize){
int n = 0;
for(int i =0;i<numsSize+1;i++)
{
n ^= i;
}
for(int i = 0;i<numsSize;i++)
{
n = n ^ nums[i];
}
return n;
}
专栏推荐
魔王的修炼之路–C语言
魔王的修炼之路–数据结构初阶
魔王的修炼之路–C++
魔王的修炼之路–Linux
更新不易,希望得到友友的三连支持一波。收藏这篇文章,意味着你将永久拥有它,无论何时何地,都可以立即找到重新阅读;关注博主,意味着无论何时何地,博主将永久和你一起学习进步,为你带来有价值的内容。