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

陇南市网站建设_网站建设公司_Oracle_seo优化

汽车网站建设方案,合肥网站建设首选 晨飞网络,网站建设的开多少税率,怎么做网站推广实际效果好思路流程#xff1a; 思路v1.0 先学会写 s[0] ,用一个ans数组接收元素#xff0c;每次往ans里添加的时候#xff0c;先判断一下 这个index会不会超出数组的长度。ans里有没有这个元素。 s[0] 写完#xff0c;就是用一个for循环#xff0c;算出所有的 s[i],每次算出来的时… 思路流程 思路v1.0 先学会写 s[0] ,用一个ans数组接收元素每次往ans里添加的时候先判断一下 这个index会不会超出数组的长度。ans里有没有这个元素。 s[0] 写完就是用一个for循环算出所有的 s[i],每次算出来的时候跟最大长度进行比较维护最大长度。 代码如下 /*** param {number[]} nums* return {number}*/ const getILen (nums,i) {let arr []arr.push(nums[i])let index arr[arr.length-1]while(indexnums.length !arr.includes(nums[index])){arr.push(nums[index])index arr[arr.length-1]}return arr.length } var arrayNesting function(nums) {let max 0;for(let i0;inums.length;i){max Math.max(max,getILen(nums,i))}return max; };思路v1.1 由于index 是 num[i] 而提示中说 0≤ nums[i]n ,因此不必考虑index益处的可能性。 代码如下 /*** param {number[]} nums* return {number}*/ const getILen (nums,i) {let arr []arr.push(nums[i])let index arr[arr.length-1]while(!arr.includes(nums[index])){arr.push(nums[index])index arr[arr.length-1]}return arr.length } var arrayNesting function(nums) {let max 0;for(let i0;inums.length;i){max Math.max(max,getILen(nums,i))}return max; };思路v2.0 每次都需要去arr里遍历时间复杂度很高因此可以优化。 去arr里遍历 → 每次将nums数组中的一个元素放入到arr时同时将这个元素改成-1下次取得时候发现是-1就不取了。当一个for迭代结束将nums数组恢复。 /*** param {number[]} nums* return {number}*/ const getILen (nums,i) {let arr []let temp [...nums];while(temp[i]!-1){arr.push(temp[i]);let index temp[i];temp[i] -1;i index}return arr.length } var arrayNesting function(nums) {let max 0;for(let i0;inums.length;i){max Math.max(max,getILen(nums,i))}return max; };从 854→869 思路v2.1 使用arr存放再计算arr.length 只是为了计算长度可以优化点使用count计数。 /*** param {number[]} nums* return {number}*/ const getILen (nums,i) {let count 0let temp [...nums];while(temp[i]!-1){count;let index temp[i];temp[i] -1;i index}return count } var arrayNesting function(nums) {let max 0;for(let i0;inums.length;i){max Math.max(max,getILen(nums,i))}return max; };从 869→875 思路v3.0 由于 let temp [...nums];的时间复杂度是ON因此依然会超时。 看题解发现是省略了这个步骤我本来以为如果省略了这个步骤就会将原来的nums数组修改掉。会导致下次进入for迭代的时候使用的是被破环的数组。 后来想了很久才发现下次for循环迭代并不会去取上次for迭代里的元素原因如下 在进行第一次迭代的数据如果后面的迭代使用到这次的数据也会是一个重复的链路。 s[0] : 0→5→6→2→0 s[2] : 2→0→5→6→2 原因 arr 元素是没有重复的如果要取到某个元素就只能从同一个元素进入。因此只要某次迭代遍历过一次的元素下次迭代再遇到获取到的集合都是同一个因此可以将这种迭代跳过。 因此直接破环原始数组直接不进入迭代
http://www.ihoyoo.com/news/10544.html

相关文章:

  • 关于域名和主机论坛的网站济南做网站多少钱
  • 外贸网站建站方案网站建设费会计处理
  • 住建部建设厅官方网站建筑工程知识零基础
  • 已经建网站做外贸免费0代码开发平台
  • 东莞怎样做网站建设唐山网站制作价格
  • 如何使用阿里云做网站网站建设自检自查
  • 外国做刹车片的企业网站网站设计开发团队
  • 网站开发阶段网站建设手机端官网
  • 网站文章展示是做怎么北京感染峰值已过
  • 空间站 对接太原seo优化
  • 垂直版面网站网站建设捌金手指专业7
  • iis7 默认网站目录石家庄网站推广排名
  • 重庆网站推广怎么样天蝎网站建设
  • 做瞹瞹瞹视频免费网站线框图网站
  • 做彩票网站能挣到钱吗?哪个网站做室内效果图厉害
  • 代码写好了怎么做成网页网页seo是什么意思
  • 湘潭哪里做网站互联网家装平台有哪些
  • 顺德高端网站建设wordpress访客函数
  • 有哪些做调查的网站可以赚钱机关门户网站app建设思考
  • 南通市住房城乡建设局网站网站设计说明书800字
  • 郴州北京网站建设用Docker搭建WordPress博客
  • 搭建网站服务器需要什么配置商城网站建设企业
  • 犀牛云网站建设费用石狮网站设计公司
  • 手机建设中网站首页功能型网站制作多少钱
  • 做电子商务系统网站建设wordpress付费附件
  • 三亚凤凰镇网站建设兼职招聘网万方期刊网官网
  • 网站设计 图片腾讯云服务器怎么搭建网站
  • 怎么自建设部网站查询公司资质网站没有地图怎么做
  • 中英文网站开发费用2345网址中国最好
  • 阿里云备案要关网站吗邵阳做网站