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

中山森斯网站建设公司西安百度

中山森斯网站建设公司,西安百度,网站关停公告怎么做,图表设计网站题目: 解题一: 如果不考虑时间复杂度和空间复杂度的话,我们最先想到的办法是先将该数组进行排序和去重,将最初的res结果值设置为1;将然后进行遍历,如果第一项不为1,则返回1,否则根…

题目:在这里插入图片描述

解题一:

如果不考虑时间复杂度和空间复杂度的话,我们最先想到的办法是先将该数组进行排序和去重,将最初的res结果值设置为1;将然后进行遍历,如果第一项不为1,则返回1,否则根据遍历res++;遍历结束后发现每一项都符合要求则返回res的最终值。代码如下:

代码一:

/*** @param {number[]} nums* @return {number}*/
var firstMissingPositive = function(nums) {nums = Array.from(new Set(nums));nums.sort((a,b)=>a-b);let res = 1;for(let i = 0; i < nums.length;i++){if(nums[i] > 0){if(nums[i] != res){return res;}res++;}}return res;
};

‌sort函数的时间复杂度为O(n log n),空间复杂度为O(n)
‌new Set操作的时间复杂度是O(n),空间复杂度也是O(n)‌
以上代码并没有满足题目要求的时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。

解题二:

我们这次使用了一个Set(numSet)来存储数组中出现过的正数。首先,我们遍历原数组nums,将每个在1到n范围内的正数添加到Set中。然后,我们再次遍历从1到n的每个数字,检查它是否在Set中出现过。如果找到一个没有出现过的数字,我们就返回它作为缺失的第一个正整数。如果所有1到n的数字都出现过,我们则返回n+1。

代码二:

/*** @param {number[]} nums* @return {number}*/
var firstMissingPositive = function(nums) {let numSet = new Set();let n = nums.length;for(let i = 0; i < n;i++){if(nums[i] > 0 && nums[i] <= n){numSet.add(nums[i]);}}for(let i = 1; i <= n;i++){if(!numSet.has(i)){return i;}}return n + 1;
};

但是我们使用了一个额外的Set来存储出现过的数字,所以这里的空间复杂度为O(n);时间复杂度是O(n),因为我们只遍历了数组两次,并且Set的查找和插入操作都是O(1)的。

解题三:

将所有负数、0 都变为 N + 1,我们只需要考虑1-n的数字
遍历每个数,如果该数 |x| 属于[1,N];把在 x-1 的位置的数加上一个负号
遍历完之后,如果全部数都是负数——答案就是 1+N,否则就是第一个正数的位置+1

代码三:

/*** @param {number[]} nums* @return {number}*/
var firstMissingPositive = function(nums) {let n = nums.length;for(let i = 0; i < n;i++){if(nums[i] <= 0) nums[i] = n + 1;}for(let i = 0; i < n;i++){let x = Math.abs(nums[i]);if(x >= 1 && x <= n){nums[x - 1] = nums[x - 1] < 0 ? nums[x - 1] : -nums[x - 1];}}for(let i = 0; i < n;i++){if(nums[i] >= 0) return i+1;}return n + 1;
};

此时就满足时间复杂度为o(n),空间复杂度为常数的代码了。此思路借鉴于力扣博主okkjoo,具体地址点击此处跳转。

当博主问朋友解决方案的时候,他二话不说的告诉我“用桶排啊!!”,于是,、、、、这篇文章到这里没有结束,,明天博主会尽快将桶排的方法补充上去,也欢迎小伙伴们在评论区留下你们的答案哦~~~~~

http://www.cadmedia.cn/news/841.html

相关文章:

  • 门户网站建设单位资质要求花西子网络营销案例分析
  • 中国建设银行甘肃省分行网站下载谷歌浏览器
  • wordpress次级目录ftp谷歌seo关键词排名优化
  • 市建设政府网站的先进经验如何发布自己的html网站
  • 网站建设与管理中专专业旅游产品推广有哪些渠道
  • 亚当学院网站视频建设教程神点击恶意点击软件
  • 网站开发的前端与后端百度公司招聘岗位
  • 关于网站建设新闻万能推广app
  • 武汉外贸网站建设公司排名网站管理和维护的主要工作有哪些
  • 易进网站建设推广网站软文是什么
  • 南宁致峰网站建设职业培训网
  • 泉州做网站建设郴州seo
  • 备案 如何方便以后做其他网站百度竞价专员
  • 聊城职业 网站建设与管理河南专业网站建设
  • 有没有做软件的网站百度seo多久能优化关键词
  • 解除网站被拦截的方法软件拉新推广平台
  • 阿里云网站域名查询淘宝代运营
  • 网站建设丶金手指下拉12企业如何进行网站推广
  • 网站建设公司-山而英语seo
  • 可以投稿的写作网站武汉it培训机构排名前十
  • 南京网站设计建设推荐搜索引擎有哪些分类
  • 深圳专业制作网站的公司哪家好电商培训课程
  • 实用网站建设期末考试怎么做好销售
  • 猫咪社区官网在线最新刷移动关键词优化
  • 高端品牌网站建设建议深圳网络推广招聘
  • 开发公司以现金方式补贴给客户seo培训讲师招聘
  • 广州营销型网站建设公司百度图片收录提交入口
  • 网站安全加固八戒
  • 西安建网站线上营销渠道主要有哪些
  • 公司变更法人的流程安卓优化清理大师