当前位置: 首页 > news >正文

『数据结构』消失的数字

     🔎【博主简介】🔎

        🏅CSDN博客专家
        🏅2021年博客之星物联网与嵌入式开发TOP5
        🏅2022年博客之星物联网与嵌入式开发TOP4
        🏅2021年2022年C站百大博主
        🏅华为云开发者社区专家博主
        🏅阿里云开发者社区专家博主
        🏅掘金INFOQ腾讯云优秀博主

📝《个人主页》謓泽-CSDN博客
🥰《个人社区》QRS社区-CSDN社区云
👀《系列专栏》
数据结构_謓泽的博客
📣 点赞👍+ 收藏⭐️+ 留言💬 

📅 创作时间:2022.11.12🔄️

消失的数字

⒈题目的内容。

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

示例①

输入⇢[3,0,1]

输出⇢2

示例②

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

输出⇢8

注意⇢根据上述示例做出题型。

⒉题目的分析。

说明⇢这道题目主要考察的是我们对于时间复杂度的理解,首先我们肯定要明白O(n)是什么,这样你才能做这道题目。相信如果有小伙伴们接触过数据结构的话,肯定很好理解O(n)是啥意思,这需要你接触过数据结构才能明白,如果不明白也没有关系在这里我先来简单的介绍下O(n)是个什么东东。

思路一⇢排序

说明⇢时间复杂度不符合、最快排序O(N*logN) 显然不行

思路二

说明⇢把0到N的结果相加到一起ret1、再把数组当中的数加到一起ret2、最终ret1-ret2=找到的数字。

概述⇢当然思路有很多种、不一定局限于一种思路。

⒊O(n)

大O符号(Big O notation)⇢用于描述函数渐进的行为数字符号。

N⇢相当于算法当中所执行的次数、算法中的基本操作的执行次数,为算法的时间复杂度。

🕹推导大O阶的方法。

⒈用常数1取代运行时间中的所有加法常数,即使这个常数再大,算法的时间复杂度还是O(1)

⒉修改后的运行次数函数当中,只保留最高阶项。

⒊如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。

解题代码如下⇣

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int missingNumber(int *nums,int numsSize)
{int i = 0;int ret1 = 0;//数组元素相加包括消失的数字int ret2 = 0;//数组的元素相加for (i = 0; i < numsSize +1; i++){ret1 += i;}for (i = 0; i < numsSize; i++){ret2 += nums[i];}return ret1 - ret2;//数组元素相加包括消失的数字-数组的元素相加=消失的数字。
}
int main()
{int nums[] = {9, 6, 4, 2, 3, 5, 7, 0, 1};int numsSize = sizeof(nums) / sizeof(nums[0]);printf("消失的数字:%d\n",missingNumber(nums, numsSize));return 0;
}

运行结果↙

消失的数字:8 

算法的执行时间T(n)=2n+1

时间复杂度为O(n)

http://www.dtcms.com/a/441694.html

相关文章:

  • 鹤山网站建设易搜互联湖南seo
  • ORB_SLAM2原理及代码解析:Tracking::CreateInitialMapMonocular() 函数
  • 【Linux】System V —— 基于建造者模式的信号量
  • VScode-ESP-IDF工程函数定义无法跳转且无注释提示
  • 最新的网站建设软件标书制作员工作内容
  • JAVA SE 基础语法 —— C / 运算符
  • SSM餐饮管理系统uto0o《开发全资源(程序 / 源码 / 数据库)+ 万言论文(文末)+ 系统界面》
  • 上饶市建设厅网站中国最新消息新冠疫苗最新消息
  • 安徽省建设银行网站关于网站建设的意见
  • 免费域名建站青岛网站有限公司
  • 广东泰通建设有限公司网站东莞人才网58
  • 什么是wap网站甘家口网站建设
  • 网站接电话中国关键词官网
  • 广州车陂网站建设公司wordpress如何修改博客模板
  • 沈阳谷歌网站建设金湖建设局网站
  • 淳化网站制作我自己的网站怎么做关键词优化
  • 深圳网站建设工作在线文字logo设计
  • 网站开发 聊天窗口镇平微网站开发
  • 网站平台延展性广州品牌网站设计价格
  • 网站开发合作意向书网站域名使用费用
  • 音乐网站的音乐怎么做音乐试听wordpress文章分页共多少页
  • 怎么选择做网站的公司专业建设情况
  • 申请网站空间是申请域名吗个人新闻类网站模板
  • 网站建设流程是什么意思解决方案网站设计
  • 网络公司 网站设计做衣服的教程网站
  • 网站内容创造深夜免费软件app下载
  • 广州网站建设亅新科送推广全国小微企业名录
  • 手机网站课程360优化大师历史版本
  • 网站都有什么类型的极简网站设计
  • 网站截图环境 php成品网站1688入口的功能介绍