草庐IT

algorithm

全部标签

javascript - 将新点添加到点数组中的正确位置

我有一个包含多个点的多边形,必须添加一个新点。现有的点存储在一个数组中:varpoints=[{x:0,y:0},{x:100,y:0},{x:100,y:100},{x:0,y:100}];你如何确定这个newPoint应该被添加到数组的哪个位置?尝试:我遍历所有现有点并计算newPoint与它们的距离,并将现有点排序到包含这些点索引的数组中,按照与newPoint的距离增加的顺序。按照我目前尝试的方法,下一步将检查最近的2个点是否相邻。如果是,则在points数组中添加它们之间的newPoint。如果它们不相邻,那么我有点卡在这里了:)你如何检查这两个点是否相邻?非常感谢任何帮助!

javascript - 使用谷歌地图绘制不规则同心圆

我有点问题。我正在尝试使用Javascript和GoogleMapsAPIv2执行以下操作:我可以使用在Internet上找到的公式很好地绘制单个圆圈。我面临的问题是圈子必须:一个。保持同心,并且B.每个“象限”必须有不同的半径,即NE、NW、SE和SW我几乎在Internet上搜索了所有我能想到的地方,但没有想出如何做到这一点。显然以前有人这样做过,因此我为什么要在程序员论坛上提问。:)谢谢!更新:我已经使用以下代码绘制出我认为每个点的坐标。对于下图:这是使用以下JS获得的:http://gist.github.com/181290注意:此javascript来自(稍作修改)以下站点

javascript - json 对象的完整路径

我正在尝试展平一个对象,其中的键将是叶节点的完整路径。我可以递归地识别哪些是叶节点,但在尝试构建整个路径时遇到了困难。示例输入:{one:1,two:{three:3},four:{five:5,six:{seven:7},eight:8},nine:9}输出:{one:1,'two.three':3,'four.five':5,'four.six.seven':7,'four.eight':8,nine:9} 最佳答案 您可以使用递归方法并收集对象的键。该提议也寻找数组。functiongetFlatObject(object){

javascript - 在 JavaScript 中实现流行的算法

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。谁能推荐一本解释所有使用JavaScript的流行搜索/排序/树/图算法的好书或网站?我正在寻找类似算法介绍的书籍,但提供的是JavaScript而非伪代码或C/Java等实现示例和代码片段。目的是学习JavaScript中的基本计算机科学算法,因为我更喜欢和理解JavaScript。

javascript - 使用另一个数组的元素生成由一个数组定义的所有分区

我试图找到数组元素的所有分区,但有一个重要的变化:Eachvalueofthesecondarrayneedstobespreadoutoverthevaluesofthefirst.Soallvaluesofthesecondarrayarealwaysused.给定这两个数组:left=[A,B];right=[1,2,3];我希望得到以下结果的集合:A=[1,2,3]B=[]A=[1,2]B=[3]A=[1,3]B=[2]A=[2,3]B=[1]A=[1]B=[2,3]A=[2]B=[1,3]A=[3]B=[1,2]A=[]B=[1,2,3]编辑:所以要清楚一点。这需要针对两个阵

javascript - 尝试优化我的代码以删除嵌套循环或使其更高效

我的一个friend取了一个从1到n的数字序列(其中n>0)在这个序列中,他选择了两个数字,a和b他说a和b的乘积应该等于数列中除a和b之外所有数的和给定一个数字n,你能告诉我他从序列中排除的数字吗?我从CodeWars找到了这个Kata的解决方案,但是当我运行它时它在编辑器中超时(12秒后);还有什么想法我应该如何进一步优化嵌套的for循环和/或删除它?functionremoveNb(n){varnArray=[];varsum=0;varanswersArray=[];for(leti=1;i.as-console-wrapper{max-height:100%!importan

javascript - 在javascript中对天数进行排序

我有一个数组。该数组可以包含1到7个唯一的日期名称字符串。日期名称将从周一到周日依次排列。-例如:["Tue","Thu","Sun"]我想使用javascript对该数组进行排序,以便该顺序将从今天开始。即:如果今天是星期五,那么排序后的数组应该是["Sun","Tue","Thu"]如果今天是星期四那么排序后的数组应该是["Thu","Sun","Tue"]有人能帮忙吗? 最佳答案 functionsort_days(days){要获取今天是星期几,请使用newDate().getDay()。这假设Sunday=0,Monday

javascript - 解析解三次方程的函数

我需要用实数解析解三次方程(ax^3+bx^2+c*x+d=0),最好是纯javascript(无库).由于可能有1到3个根,我认为数字数组是一种合理的结果类型。附言下面提供了我自己的解决方案,希望对你有用。 最佳答案 给你。包括处理退化的情况。主要算法大部分来自wikipediaarticle.functioncuberoot(x){vary=Math.pow(Math.abs(x),1/3);returnx0)return[(-b+Math.sqrt(D))/(2*a),(-b-Math.sqrt(D))/(2*a)];retu

javascript - 动态规划 : Code Wars: twice linear: algorithm times out

我在CodeWars中遇到了卡塔:https://www.codewars.com/kata/5672682212c8ecf83e000050/train/javascript这个想法是创建一个数字序列,其中每个数字都是按照以下两个公式隐式创建的:y=2x+1z=3x+1x是序列中的当前数字。从1开始,序列会像这样增长:sequence=[1]x=1y=2*1+1=3z=3*1+1=4leadingtosequence=[1,3,4]将它应用到下一个数字会导致:x=3y=2*3+1=7z=3*3+1=10leadingtosequence=[1,3,4,7,10]x=4y=2*4+1=

javascript - 根据特定规则对对象进行排序

在Javascript中,我需要根据类型对数组中的对象进行排序。每种类型都有更高的优先级,因此类型为“删除”的对象应该具有最高优先级,因此位于数组的前面(索引=0)。对这些对象进行排序的最佳方法是什么?是否有内置函数可以执行此操作?例如:functionsortObjects(objs){//objsisanunsortedarrayofobjectsvaranimPriority={"wipe":1,"fly":2,"iris":3,"flip":4,"cube":5,"blur":6,"zoom":7,"fade":8,"glow":9,"rotate":10};for(vari=