草庐IT

algorithm

全部标签

javascript - unique() 用于 javascript 中的数组

这个问题在这里已经有了答案:Getallnon-uniquevalues(i.e.:duplicate/morethanoneoccurrence)inanarray(97个答案)关闭9年前。众所周知,javascript中没有用于从数组中删除重复项的内置函数。我注意到jQuery也缺少这一点(它仅具有用于DOM选择的独特功能),我发现的最常见的片段检查整个数组及其每个元素的子集(我认为效率不高),例如:for(vari=0;i所以我自己做了:functionunique(arr){varhash={},result=[];for(vari=0;i我想知道是否有任何其他算法被认为是这种

javascript - 如何将字符串拆分为给定数量的行?

这是我的问题:给定一个由空格分隔的单词组成的字符串,我如何将其拆分为(大致)偶数长度的N个字符串,只在空格处打断?以下是我从研究中收集到的信息:我开始研究自动换行算法,因为在我看来,这基本上是一个自动换行问题。然而,到目前为止我发现的大部分内容(还有很多关于自动换行的内容)都假设线的宽度是一个已知的输入,而行数是一个输出。我想要相反的。我发现了(非常)几个问题,例如this这似乎是有帮助的。但是,他们都将问题作为优化之一来关注-例如我怎样才能将一个句子分成给定数量的行,同时最大限度地减少行的参差不齐,或者浪费的空白,或者其他什么,并在线性(或NlogN,或其他)时间内完成。这些问题似乎

javascript - Diamond-Square 实现产生的值(value)太高

我已经实现了一个生成高度图的Diamond-Square函数。乍一看,该实现似乎工作正常。这只是两个示例,但已经可以看出输出值总体上似乎相当高。只有很少的真正黑暗的值(value)观。一世。E.如果您查看此paper中的高度图(由diamondsquare制作)你可以看到它们不像我的那么均匀。不同地区之间有更多的偏移量。有些区域看起来像陨石坑。我无法弄清楚此行为的原因是错误的参数化还是实现。尽管Web上的示例实现确实略有不同,但我认为我已经掌握了基本思路。我正在处理平面类型数组。我传递给函数的参数是:边长因为我有一个表示二维矩阵的平面数组,所以我传递网格边长以进行进一步计算。我在这里传

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。我几乎总是以翻转的结果结束,并且以某种方式最终将它们翻转回来,但显然我对此

javascript - 在球体表面堆积不规则圆

我正在使用Three.js在球体上创建点,类似于periodictableofelementsexample.我的数据集是大小不规则的圆圈,我希望将它们均匀分布在球体表面。在网络上搜索了数小时之后,我意识到这比听起来远难。以下是这个想法的实际例子:VimeoPicturecirclePackJavaapplet是否有一种算法可以让我做到这一点?打包率不需要非常高,理想情况下,它可以在JavaScript中快速轻松地计算,以便在Three.js中呈现(笛卡尔或坐标系统).效率是关键。圆的半径可以有很大的不同。下面是一个使用元素周期表代码的示例: 最佳答案

javascript - Kadane 的算法解释

有人可以告诉我Kadane算法中发生了什么吗?想检查我的理解。这就是我的看法。你正在遍历数组,每次将ans变量设置为看到的最大值,直到该值变为负数,然后ans变为零。与此同时,每次循环都会覆盖sum变量,直到之前看到的总和之间的最大值或迄今为止最大的“ans”。循环执行完毕后,您将获得迄今为止看到的最大总和或答案!varsumArray=function(array){varans=0;varsum=0;//loopthroughthearray.for(vari=0;i 最佳答案 考虑跟踪值:varmaximumSubArray=

Javascript 文本相似度算法

我正在构建一个网站,该网站应收集各种新闻提要并希望比较文本的相似性。我需要的是某种新闻文本相似度算法。我知道php有similar_text函数,但不确定它有多好+我需要它用于javascript。因此,如果有人能给我指出一个示例或插件或任何关于如何实现这一点的说明,或者至少从哪里开始调查。 最佳答案 有一个javascriptimplementationLevenshtein距离度量,通常用于文本比较。如果您想比较整篇文章或标题,您最好查看构成文本的单词集(以及这些单词的频率)之间的交集,而不仅仅是字符串相似性度量。

javascript - 创建由每个子数组的最大值组成的数组无法按预期工作

在每个子数组中找到最大的数字,然后将这些最大的数字组成一个数组。[[4,5,1,3],[13,27,18,26],[32,35,37,39],[1000,1001,857,1]]我写了一些代码,但我不知道它有什么问题。也许Array.push()方法不起作用或者for循环。functionlargestOfFour(arr){varmain=[];for(k=0;k 最佳答案 问题出在内部循环上,当您尝试为每个数组找到最大值时。在外循环的每次迭代中,您应该重置long=arr[k][0]。它不应重置为0,因为最大值可能小于0。请注意

javascript - 计算总页数的分页逻辑

我正在使用一个需要我在下面传递的react组件我无法计算出API中的计算结果,我有total_items,而不是totalPages。如果我有50个total_items,如何为totalPages属性生成5个?说我的上限是10。 最佳答案 将total_items除以limit,然后向上取整。Math.ceil(total_items/limit);50items/10perpage=5pages55items/10perpage=6pages 关于javascript-计算总页数的分

javascript - javascript中的下一个奇数

要查找输入的下一个奇数,使用以下代码:a=5.4;//Inputb=Math.ceil(a);//Requiredtoturninputtowholenumberb=b+(((b%2)-1)*-1);//Gives7需要ceil舍入函数。这样做安全吗?有没有更紧凑的方法?编辑:当输入已经是奇数时,什么也不会发生。例如5.0将返回5 最佳答案 怎么样b+=b%2^1;除以2后的余数将始终为0或1,因此^运算符(异或)将其翻转到相反的位置。(此外,(b&1)^1也可以。哦,我猜b=b^1可以用于正整数,但它会对于大整数会有问题。)