手撕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)

相关推荐
第九序言T13 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
ZhengEnCi14 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
龙亘川15 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人15 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
秋天的怀念_David15 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas10015 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
Pniubi15 小时前
力扣283移动零(双指针法)
算法·leetcode·职场和发展
hhb_61815 小时前
大模型落地三重优化实战
人工智能·算法·机器学习
云和数据.ChenGuang16 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
专注仿真16 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法