【数据结构OJ题】消失的数字

简介: 力扣题目——消失的数字

1. 题目描述

5249ec8e16dd0acc37bf5d8e083382c1.png

2. 思路分析

方法一:排序+遍历(下一个数不等于上一个数+1,这个下一个数就是消失的数字)。

时间复杂度:O(N*logN) (这里用比较快的qsort排序)

方法二:0+1+2...+(n-1)+n用等差数列求和公式计算,求和结果依次减去数组中的值,最后的结果就是消失的数字。

时间复杂度:O(N)

方法三:单身狗思路,异或

时间复杂度:O(N)

不了解单身狗问题的小伙伴可以看看这篇文章:https://blog.csdn.net/m0_62531913/article/details/132053191?spm=1001.2014.3001.5501

3.代码实现

因为第一种方法的时间复杂度比较高,这里就不写出来了。

方法二:

int missingNumber(int* nums, int numsSize){
   
    int n=numsSize;
    int s=(0+n)*(n+1)/2;
    for(int i=0;i<n;i++)
    {
   
        s-=nums[i];
    }
    return s;
}

1e87cef31be4f90ba2d3389e3f9e324a.png

方法三:

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

851859e6fe89538ba66549a802cedd83.png

相关文章
|
1月前
【数据结构OJ题】环形链表
力扣题目——环形链表
26 3
【数据结构OJ题】环形链表
|
1月前
|
存储 索引
【数据结构OJ题】设计循环队列
力扣题目——设计循环队列
23 1
【数据结构OJ题】设计循环队列
|
1月前
【数据结构OJ题】有效的括号
力扣题目——有效的括号
25 1
【数据结构OJ题】有效的括号
|
1月前
【数据结构OJ题】复制带随机指针的链表
力扣题目——复制带随机指针的链表
37 1
【数据结构OJ题】复制带随机指针的链表
|
1月前
【数据结构OJ题】环形链表II
力扣题目——环形链表II
14 1
【数据结构OJ题】环形链表II
|
1月前
【数据结构OJ题】相交链表
力扣题目——相交链表
18 1
【数据结构OJ题】相交链表
|
1月前
【数据结构OJ题】合并两个有序链表
力扣题目——合并两个有序链表
30 8
【数据结构OJ题】合并两个有序链表
|
1月前
【数据结构OJ题】移除链表元素
力扣题目——移除链表元素
31 2
【数据结构OJ题】移除链表元素
|
1月前
【数据结构OJ题】链表中倒数第k个结点
牛客题目——链表中倒数第k个结点
24 1
【数据结构OJ题】链表中倒数第k个结点
|
1月前
|
存储
【数据结构OJ题】轮转数组
力扣题目——轮转数组
24 2
【数据结构OJ题】轮转数组