Leetcode刷题之消失的数字(C语言版)

Leetcode刷题之消失的数字(C语言版)

一、题目描述

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

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

示例 1:

输入:[3,0,1]

输出:2

示例 2:

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

输出:8

二、题目解析

本道题目我们可以采用一种非常巧妙的方法解决,那么就是利用等差数列的公式。我们可以先用等差数列的公式求出包括"消失的数字"的和,接着我们利用循环减去数组的每一项就可以的到消失的那一项
代码如下:

c 复制代码
int missingNumber(int* nums, int numsSize)
{
   int sum=(1+numsSize)*(numsSize)/2;
   int i=0;
   for(i=0;i<numsSize;i++)
   {
    sum=sum-nums[i];
   }
   return sum;
}

值得我们关注的是在这里我们将首项看作是1。

相关推荐
鳄鱼儿12 小时前
密码算法的OID查阅
算法
lxh011313 小时前
螺旋数组题解
前端·算法·js
czlczl2002092513 小时前
算法:二叉树的公共祖先
算法
稚辉君.MCA_P8_Java14 小时前
Gemini永久会员 Java动态规划
java·数据结构·leetcode·排序算法·动态规划
oioihoii14 小时前
C++语言演进之路:从“C with Classes”到现代编程基石
java·c语言·c++
小白程序员成长日记14 小时前
2025.11.23 力扣每日一题
算法·leetcode·职场和发展
16_one15 小时前
autoDL安装Open-WebUi+Rag本地知识库问答+Function Calling
人工智能·后端·算法
散峰而望16 小时前
C++数组(三)(算法竞赛)
开发语言·c++·算法·github
q***952216 小时前
SpringMVC 请求参数接收
前端·javascript·算法
初级炼丹师(爱说实话版)17 小时前
多进程与多线程的优缺点及适用场景总结
算法