草庐IT

递归算法举例

全部标签

javascript - 如何跳出递归函数中的循环?

我正在处理一组类别对象,这些对象可以包含一组子类别对象。棘手的部分是这个嵌套数据的深度是未知的(并且可以改变)。(请参阅底部的示例。)我正在尝试做的是将“踪迹”返回到类别对象,但我遇到了各种困难。理想情况下,findCategory('b4')会返回:['c1','d2','d3','b4'](参见示例).我认为我的问题是我无法正确地打破由递归引起的嵌套循环。有时我会在我的足迹中获得额外的类别,或者当我认为我已经突破时,一些更深的嵌套类别最终会出现在我的足迹中。一个结果可能是这样的。很明显,它并没有终止b4处的循环,我不确定为什么会找到两次结果。b4FOUND["c1","d2","d

javascript - JavaScript 的尾递归优化?

对于之前版本的含糊不清,我向大家道歉。有人决定同情这个新来的女孩并帮助我重写这个问题-这是我希望能解决问题的更新(并且,感谢所有到目前为止一直慷慨回答的人):问题我是一名新的计算机科学专业的学生,​​在我大学的第一年。对于我的算法类的最终项目,我们可以选择任何我们喜欢的语言并实现一个“精炼”/“效率”算法,该算法在另一种语言中native(内部?),但在我们选择的语言中缺失。我们最近刚刚在类里面学习了递归,我的教授简要地提到了JavaScript没有实现尾递归。根据我的在线研究,新的ECMA脚本6规范包含此功能,但目前在任何(/大多数?)JavaScript版本/引擎中都没有?(抱歉,

Javascript递归settimeout

我刚刚开始研究javascript,所以希望这会很简单。我想制作自动播放的图像幻灯片。这非常简单,并且有一些关于它的教程,但由于某种原因我无法让它工作。这是我的:varimage1=newImage();varimage2=newImage();varimage3=newImage();image1.src="images/website6.jpg";image2.src="images/website7.jpg";image3.src="images/sunset.jpg";varimages=newArray("images/website6.jpg","images/websit

javascript - 递归搜索全局变量及其属性中的值

假设我想在window中所有声明的变量中搜索一个值,例如'StackOverflow'。我可以用这段代码做到这一点:functionglobalSearch(obj,value){for(varpinobj)if(obj[p]==value)return(p);}globalSearch(window,'StackOverflow');此代码将返回具有此值的变量的名称(或不返回任何内容)。因此,如果我声明了一个值为'StackOverflow'的变量,它将成功找到它。我的问题是我想更深入地搜索window的对象(及其自己的嵌套对象),以获得如下结果:varx='StackOverflo

javascript - javascript中的递归字符串反转函数?

我是一名经验丰富的前端工程师,CS背景较弱。我试图了解递归的概念。我能找到的大多数示例和声称的解释都没有以我认为易于理解的方式对其进行解释。我给自己设定了一个任务,即编写一个函数来递归地反转字符串。我知道必须有一个基本条件(即找到解决方案),但我无法弄清楚如何实际编写这样的东西并且可以使用演示来研究。有人可以提供示例功能吗? 最佳答案 类似于:functionreverse(str){if(str===""){return"";}else{returnreverse(str.substr(1))+str.charAt(0);}}所以

数据结构与算法——知识点总结

本文包含数据结构与算法主要的基本知识点,便于知识的梳理与回顾。部分知识点的详细介绍请在专栏内查阅。目录一、概述二、线性表三、栈四、队列五、串六、多维数组和广义表七、树和二叉树八、图九、查找十、排序一、概述数据结构(逻辑结构、存储结构、算法)数据项∈数据元素(记录)∈数据。数据元素(结点):数据的基本单位。数据项:不可分割,最小数据单位。数据对象:性质相同的数据元素的集合,数据的子集。1、逻辑结构(线性和非线性)数据结构(相互之间存在一种或多种特定关系的数据元素的集合)集合:同属于一个集合是数据元素之间的唯一关系。线性结构:“一对一”关系,仅有一个直接前驱和一个直接后继。树形结构:”一对多”关系

javascript - 递归函数 vs setInterval vs setTimeout javascript

我正在使用NodeJs并且需要调用无限函数,但我不知道什么是最佳性能。递归函数functiontest(){//mycodetest();}设置间隔setInterval(function(){//mycode},60);设置超时functiontest(){//mycodesetTimeout(test,60);}我想要在不崩溃服务器的情况下获得最佳性能。我的代码有几个算术运算。感谢任何优化javascript性能的建议。 最佳答案 小心..你的第一个代码会阻塞JavaScript事件循环。基本上在JS中是类似于应该处理的函数列表

javascript - 5 个主要浏览器都使用哪些垃圾收集算法?

我目前正在重新考虑qooxdooJavaScript框架的对象处置处理。请看下图(A当前在范围内):diagramhttp://yuml.me/51747906.jpg假设我们要删除B。通常,我们会切断所有对象之间的所有引用。这意味着我们在示例中切断了连接1到5。这真的有必要吗?据我阅读here,浏览器使用标记和清除算法。在这种情况下,我们只需要切断引用1(与范围的连接)和5(与DOM的连接),这样会更快。但我能确定所有浏览器都使用标记清除算法或类似算法吗? 最佳答案 对于任何体面的垃圾收集器(不仅仅是标记和清除),切断连接1就足以

javascript - 为什么我使用位图缓冲区在索引和 x,y 之间转换的算法会导致图像垂直翻转?

当使用像这样的位图缓冲区时:[50,50,50,255,50,50,50,255,...][r,g,b,a,r,g,b,a,...]我经常这样使用数学:letbufferWidth=width*4;buffer.forEach((channel,index)=>{lety=Math.floor(index/bufferWidth);letx=Math.floor((index%bufferWidth)/4);letremainder=index%4;为了计算x、y,反之亦然以使用位图数据的FlatBuffers。我几乎总是以翻转的结果结束,并且以某种方式最终将它们翻转回来,但显然我对此

计算机视觉算法——基于Transformer的目标检测(DETR / Deformable DETR / DETR 3D)

计算机视觉算法——基于Transformer的目标检测(DETR/DeformableDETR/DETR3D)计算机视觉算法——基于Transformer的目标检测(DETR/DeformableDETR/DETR3D)1.DETR1.1TransformerEncoder-Decoder1.2Set-to-SetLoss1.3PositionalEmbedding2.DeformableDETR2.1DeformableAttentionModule2.2DeformableTransformerEncoder-Decoder2.3Conclusion3.DETR3D3.12Dto3DTra