草庐IT

algorithm

全部标签

javascript - 按升序排列天数

我有一个数组,其中包含唯一的日期名称字符串。日期名称将按随机顺序排列。-例如:["Sun10am","Sat4pm","Sat10am","Wed3pm","Sun4pm"]我想使用javascript对该数组进行排序,使其按升序排列。["Wed3pm","Sat10am","Sat4pm","Sun10am","Sun4pm"]有人可以建议最好的方法吗?谢谢 最佳答案 您可以创建一个以日期名称作为键和值从1增加到7的对象。创建一个辅助函数,它将字符串的第二部分即3pm,10am..作为输入,如果pm12添加到结果中同时将结果除以2

javascript - Javascript 中的链表与数组

所以我在JS中玩弄链表并提出了以下问题:比方说,我们有一个数组和一个链表,它们都有5000个元素。我们想在索引10处插入新元素。数组方式非常简单。我们在给定索引处插入新元素,并将其余元素向前移动一个索引。所以我尝试用链表来做这件事,并以下面的方式结束它:从NicholasZakas获取链表的实现并添加附加方法addOnPosition(data,index)。最后是代码:functionLinkedList(){this._head=null;this._length=0;}LinkedList.prototype={constructor:LinkedList,add:functio

javascript - 如何在 JavaScript 中创建此对象的键/值的所有组合?

我有以下JavaScript对象结构:varoptions={optionOne:[true,false],optionTwo:[true,false],optionThree:[null,{property1:9,property2:7},{property1:4,property2:12},{property1:16,property2:14}]};请注意,此对象中key/对的数量会有所不同。所以实际上可能有optionFour、optionFive等,每个选项的数组可以有任意数量或类型的值。我需要遍历这个对象并创建一个包含所有可能选项组合的对象的数组:[{optionOne:tr

javascript - Peak and Flag Codility 最新挑战

我正在尝试解决最新的codility.com问题(只是为了提高我的技能)。我试过分配但没有得到超过30分,所以现在很好奇我的解决方案中到底缺少什么。问题是给定一个由N个整数组成的非空零索引数组A。峰是一个数组元素,它比它的邻居大。更准确地说,它是一个索引P,使得0A[P+1]例如下面的数组A:A[0]=1A[1]=5A[2]=3A[3]=4A[4]=3A[5]=4A[6]=1A[7]=2A[8]=3A[9]=4A[10]=6A[11]=2恰好有四个峰:元素1、3、5和10。你要去一系列山脉旅行,其相对高度由数组A表示。你必须选择你应该带多少旗帜。目标是根据特定规则在山峰上设置最大数量的

javascript - 如何生成元素的随机加权分布

我想返回一个数组,其中包含一组根据自定义频率随机分布的唯一元素。我的真实用例是根据对这些图像的流行程度进行定性加权来重复轮播图像。例如假设我有5个带权重的元素:一个,20%B、50%C、80%D、10%我想写一个函数,在给定长度的情况下,尝试逼近一个序列,使得C出现的频率是D的八倍;D出现的次数比B少5倍;A的出现频率是C的三倍。 最佳答案 CwillappeareighttimesmoreoftenthanD;Dwillappear5timeslessoftenthanB;Awillappearthreetimeslessofte

javascript - 在 Node.js 中高效计算 n 选择 k

我在Node.js服务器上有一些性能敏感代码需要计算组合。来自thisSOanswer,我使用这个简单的递归函数来计算n选择k:functionchoose(n,k){if(k===0)return1;return(n*choose(n-1,k-1))/k;}因为我们都知道迭代几乎总是比递归快,所以我根据multiplicativeformula编写了这个函数:functionchoosei(n,k){varresult=1;for(vari=1;i我跑了几个benchmarks在我的机器上。以下是其中一个的结果:Recursivex178,836ops/sec±7.03%(60run

javascript - 使用 JavaScript 的密码保护网站

我有一个问题可能很简单/很愚蠢:)。换句话说,我不知道这是否足够公平或一个完全愚蠢的想法。只是一些自由的想法。如果我通过JavaScript登录并传入密码(是的,我知道),但安全哈希算法将对密码进行哈希处理,该怎么办?例如:我用SHA生成一个通行证,看起来像var=0xc1059ed8...//etc并粘贴到代码中。还将有两个功能。一个将比较两个值(由我与用户提供),第二个将生成sha表单用户输入。这在理论上是安全的还是这是一个可怕的模式和愚蠢的想法?JS能搞定吗?编辑:我的意思不是像银行一样的严重认证。就在我有我的照片并且只想让少数人观看它们而地球上99.9%的人无法观看它们的时候:

javascript - Math.ceil 到位置 1 最接近的五

好的....我有很多不受控制的数字要四舍五入:51255->5500025->259214->950013135->1500025123->30000我尝试将数字修改为字符串并计算长度....但是有没有一种使用一些数学函数的简单方法呢? 最佳答案 这是我迟来的回答。不使用Math方法。functiontoN5(x){vari=5;while(x>=100){x/=10;i*=10;}return((~~(x/5))+(x%5?1:0))*i;}演示:http://jsbin.com/ujamoj/edit#javascript,li

javascript - 在 Google App Script 中使用导入的模块

我正在尝试使用stringsimilarity在GoogleAppScript中,但是我并不完全清楚如何让它在AppScript中工作,我收到多个错误,例如未定义“require”,另一个注意,模块本身似乎具有依赖性。我的最终目标是使用此脚本来匹配AppScript中一个字符串充满拼写错误的数组与一个字符串正确的数组之间的字符串分数。这是我失败的代码。functionmatchEmails(){vardoc=SpreadsheetApp.openById(("ID"));varts=doc.getSheetByName("dir");varsource=doc.getSheetByNa

javascript - 偏置随机 boolean 值的优雅方式

我想在JavaScript中创建一个随机boolean值,但我想考虑之前的值。如果前一个值为真,我希望下一个值更有可能为真。目前我得到了这个(这是在闭包的上下文中-goUp和lastGoUp是包含范围的局部变量):functionsetGoUp(){goUp=getRandomBoolean();if(lastGoUp){goUp=getRandomBoolean()||goUp;}else{goUp=getRandomBoolean()&&goUp;}lastGoUp=goUp;}所以,算法是这样的:获取一个随机boolean值如果上次调用的随机boolean值是True:a)得到另