手撕C语言题典——消失的数字

目录

前言

一,思路

1)排序查找排序查找)

2)数据求和,依次减去中值

[3) 异或](#3) 异或)

二,异或的代码实现


前言

依旧是一道力扣上的题,通过不同思路的不同时间复杂度来分析,让我们看看有什么不同。

面试题 17.04. 消失的数字 - 力扣(LeetCode)https://leetcode.cn/problems/missing-number-lcci/description/

题目很简单,我们先不考虑题目要求的时间复杂度,单纯从思路来看,然后再计算相对应的时间复杂度 。

一,思路

1)排序查找

最简单的也是最容易想出来的思路:

我们只需要对数据进行排序,再依次遍历,如果发现下一个数不是上一个数据+1,则这个数就是消失的数。

2)数据求和,依次减去中值

贴一下笔记:

3) 异或

异或只需要知道 相同的值异或之后是零,比如 1^1 = 0,后面会出一期详细讲一下异或的性质和应用。

二,异或的代码实现

cpp 复制代码
int missingNumber(int* nums, int numsSize){
    int N = numsSize;
    int x = 0;
    for(int i=0;i< numsSize;++i){
        x ^= nums[i];
    }
    for(int j=0;j <= N;++j){
        x ^=j;
    }
    return x;
}

因为只有简单的循环且并没有嵌套,同样异或的时间复杂度也是O(N)

相关推荐
Logic1015 小时前
C语言/数据结构位运算题解:异或XOR找出弹子游戏机中数量为奇数的数字——只出现奇数次
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
147API5 小时前
如何设计“回答、追问、停答”三类蒸馏训练集
人工智能·算法·机器学习
朝朝辞暮i5 小时前
C++ 第 10 课:函数 Function
开发语言·c++
我命由我123455 小时前
Photoshop - Photoshop 快速共享作品
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop
此时不提桶,更待何时5 小时前
06-08-B-RocketMQ面试与生产事故实战
面试·rocketmq
我命由我123455 小时前
自动化 / 智能装配的对象、内容、层级
运维·学习·职场和发展·自动化·求职招聘·职场发展·学习方法
朝朝辞暮i5 小时前
C++ 第7课 while 循环
开发语言·c++·算法
小朱爱编程1235 小时前
我用 Jev 做了三个实用工具:整理标签页、分诊飞书反馈、找回 GitHub 收藏
java·开发语言·人工智能·后端·python·架构·ai编程
AI职业加油站6 小时前
大模型开发工程师证书怎么考?零基础学习路径与价值拆解
大数据·人工智能·学习·职场和发展·数据分析
谢亮_vipxieliang6 小时前
Java 8/11/17/21/25 怎么选?一篇讲清 LTS 升级路线
java·开发语言