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

web网站开发实例下载今日新闻最新消息

web网站开发实例下载,今日新闻最新消息,广告公司怎么做业务,在手机上编程的软件本篇博客会讲解力扣“268. 丢失的数字”的解题思路,这是题目链接。 注意进阶中的描述:你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?这里我会讲解两种思路,它们的时间复杂度是O(N),空间复杂度是O(1)…

在这里插入图片描述

本篇博客会讲解力扣“268. 丢失的数字”的解题思路,这是题目链接。

在这里插入图片描述
注意进阶中的描述:你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?这里我会讲解两种思路,它们的时间复杂度是O(N),空间复杂度是O(1)。

思路一:数学

本题可以使用数学的方法求解。我们先使用等差数列求和公式,计算0+1+2+…+n的值,再减去数组中的所有值,得到的就是丢失的数字。

int missingNumber(int* nums, int numsSize) {// 求和0+1+2+...+nint ret = (1 + numsSize) * numsSize / 2;// 减去数组中的数for (int i = 0; i < numsSize; ++i){ret -= nums[i];}return ret;
}

在这里插入图片描述

思路二:位运算

我们也可以使用位运算来解决这道题目。我们先创建一个变量并初始化成0,接着把0到n的数字都和这个变量异或,最后把数组中的数字都和这个变量异或,就能得到丢失的数字。这是因为异或运算具有交换律、结合律,且相同数字异或的结果是0,任何数字和0异或的结果都是这个数字本身,所以0到n中除了丢失的数字之外,异或后都抵消掉了,只留下丢失的数字。

int missingNumber(int* nums, int numsSize){// 计算0^1^2^...^nint ret = 0;for (int i = 1; i <= numsSize; ++i){ret ^= i;}// 异或数组中的数据for (int i = 0; i < numsSize; ++i){ret ^= nums[i];}return ret;
}

在这里插入图片描述

总结

思路一较为巧妙,运用了等差数列求和公式,只需要遍历一遍数组就能求得答案。思路二运用到了异或的性质,大家一定要熟练掌握。

感谢大家的阅读!

http://www.fp688.cn/news/146999.html

相关文章:

  • 土特产网站建设事业计划书seo常见优化技术
  • 河南网站建设哪里有关键词挖掘工具网站
  • 网站开发公司上谷歌浏览器下载app
  • 帮别人设计网站营销型网站建设的主要流程包括
  • 网站条形码如何做百度广告位价格
  • 马鞍山网站建设方案网络营销特点
  • 为什么做独立站的人都不止一个网站手机搜索引擎排名
  • 天津怎样做网站推广项目网站
  • wordpress弹幕主题优化大师哪个好
  • 网站改版怎么做搜索排名广告营销怎么做
  • 宠物医院网站建设方案想开广告公司怎么起步
  • 怎样上网站建设aso推广公司
  • 网站后台编程语言建网站流程
  • 洛阳做网站那家好百度营销是什么
  • oppo官方网站竞价托管资讯
  • 个人网站 做外贸竞价排名名词解释
  • 网站内页跳转wap上海seo网站优化软件
  • 网站的上一页怎么做的上海网站建设seo
  • 门户网站的建设成果行业关键词搜索量排名
  • 香港做电商网站江门网站开发多少钱
  • 深圳高端网站建设公司360建网站
  • 南宁企业网站建设朋友圈广告怎么投放
  • 国家对于建设政府网站的文件百度百家官网入口
  • 网站建设技术合同模板seo建站网络公司
  • 中兴路由器做网站大数据营销案例分析
  • 网站qq链接怎么做电脑培训机构哪个好
  • 建设网站 (公司)宁波网站关键词排名推广
  • 网页设计素材app南召seo快速排名价格
  • 幼儿园网站建设多少钱百度网站客服
  • 网站在建设中是什么意思2021最火营销方案