首页 > 其他 > 详细

p14 寻找缺失的数字 (leetcode 268)

时间:2020-03-10 16:17:53      阅读:40      评论:0      收藏:0      [点我收藏+]

一:解题思路

我们知道2个相同的数字异或的结果为0,所以我们只需要将数组下标和数组中每个元素相异或就能够找出最后的那个缺失的数字。

二:完整代码示例 (C++版和Java版)

Time:O(n),Space:O(1)

C++版:

 class Solution 
 {
 public:
     int missingNumber(vector<int>& nums) 
     {
         int n = nums.size();
         int result = n;

         for (int i = 0; i < n; i++)
         {
             result = result ^ i^nums[i];
         }

         return result;
     }
 };

Java版:

class Solution 
{
    public int missingNumber(int[] nums) 
    {
          int n=nums.length;
          int result=n;
          
          for(int i=0;i<n;i++)
          {
              result=result^i^nums[i];
          }
          
          return result;
    }
}

 

p14 寻找缺失的数字 (leetcode 268)

原文:https://www.cnblogs.com/repinkply/p/12455607.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!