IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Leetcode习题:消失的数字(C语言版解法) -> 正文阅读

[数据结构与算法]Leetcode习题:消失的数字(C语言版解法)

在数据结构学习初期,“消失的数字”是我们对于异或运算符较为简单基础的运用。

在这里为了更加透彻理解运用异或运算符,我先对异或运算符的一些性质进行讲解。

一 ·异或运算的真值表

若是认为这个很难记住可以当作是一个无进位的二进制加法

举个例子 1^2 =3? ? ? ? ? ? ? ? ? ? ? 15^15=0

在C语言上异或运算符是针对二进制上0/1的操作

二·异或运算具有交换律和结合律

通过交换律和结合律我们可以得出当一系列数字进行异或运算的时候是无关先后顺序的。

现在让我们来对Leetcode的“消失的数字”进行讲解

数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?

注意:本题相对书上原题稍作改动

示例 1:

输入:[3,0,1]
输出:2
?

示例 2:

输入:[9,6,4,2,3,5,7,0,1]
输出:8

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/missing-number-lcci

代码实现:

int missingNumber(int* nums, int numsSize)
{
    int a = 0;
    for(int i = 0;i < numsSize;i++)//对缺失数组和不缺失整数的数组进行异或运算
    {
       a = a ^ i ^ *(nums + i);
    }
    return a ^ numsSize;//因为不缺失整数的数组长度是要比输入数组长的,所以在这里我们再次进行一次异或运算
}

现在对上述代码转化成一个数学的实现

这样我用一个数学计算过程来看是不是清晰很多呢?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 14:16:53  更:2022-01-08 14:17:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 18:37:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码