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

西宁市网站设计企业国外企业查询网站

西宁市网站设计企业,国外企业查询网站,网站被收录,20平米的办公室怎样装修本篇博客会讲解力扣“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.yayakq.cn/news/647272/

相关文章:

  • app外包seo推广费用
  • 兰州做网站es5188建设工程合同印花税
  • 网站设计推广方案wordpress api插件
  • 福州企业建站系统模板公司管理软件免费版
  • 微网站开发企业选择在线建筑设计
  • 网站建设 协议书成都住建局官网报名入口网址
  • 易网站票网站开发云南省建设厅勘察设计处网站
  • 做网站怎么合并单元格微信推广和网站推广哪个好
  • 在电脑上怎么建设网站成熟的国产crm系统
  • 做个外贸网站wordpress显示备案号
  • wordpress网站插件下载怎么拥有网站的所有权
  • 江津网站建设效果好不好开发一个软件需要什么过程
  • 网站建设课程任务做旅游网站的写手
  • wordpress资料分享网站网站常见错误代码
  • 高密哪里做网站网站建设芜湖
  • 蚌埠网站关键词优化好的营销网站
  • 网站空间 云端备案密码如何登录添加网站
  • 品牌网站建设4小蝌蚪网站ftp目录
  • 网站建设运营策划高端网校通
  • 客户关系管理的内涵绵竹seo
  • 商务网站建设考试题库宠物网站建设总结
  • 网站高端网站建设关于建设工程资料的网站
  • 网站服务器有什么用网站报价功能清单
  • 网站建设开发教程英文网站推广方法
  • 网站中文字内容左右切换的js代码泉企业网站建设
  • 学校招标网站建设公司注册50万和100万
  • 江苏省城乡和建设厅网站网站上传用什么软件做视频
  • 沈阳网站网站建设建设银行租房网站6
  • 广东建设业协会网站流量对网站的作用
  • 互联网网站 权限当地自己的淘宝网站怎么做