WHCSRL 技术网

Leetcode Leetcode面试题消失数字解决方案

Q:数组 nums 包含从 0 到 n 的所有整数,但缺少一个。请编写代码以查找丢失的整数。在 O(n) 时间内完成。

使用位运算符^来解决这个问题

每一位都互斥或同0异同1

一个数是互斥的或同一个数两次,结果还是那个数。

解题思路:先用x=0对0到n的数字进行异或,然后对数组nums中的数字进行异或,最后得到缺失的整数。

  1. int missingNumber(int* nums, int numsSize) div>
  2. {
  3. < div class="hljs-ln-numbers">
int x=0< /span >;
  • int i=0;
  • for(i=0;i
  • {
  • x^=i;
  • < div class="hljs-ln-line"> }
  • < div class="hljs-ln-line"> for(i=0;i
  • {
  • < li>
    x^nums[i];
  • }
  • 返回 x;
  • }
  • 以上是leetcode消失的数字的解决方法。

    欢迎评论,留言,点赞支持指正,感谢老铁看到这里。

    推荐阅读