草庐IT

algorithm

全部标签

javascript - LRU 缓存在 Javascript 中的实现

Java有LinkedHashMapgetsyou99%theretoanLRUcache.是否有LRU缓存的Javascript实现,最好来自信誉良好的来源,即:可以理解高效(分摊O(1)get/put/delete)?我一直在网上搜索,但找不到;我以为我在AjaxDesignPatterns上找到了一个但它掩盖了sendToTail()方法并具有O(n)性能(大概是因为队列和关联数组被拆分了)。我想我可以自己写,但我已经通过艰难的方式了解到,为核心算法重新发明轮子可能会对一个人的健康造成危害:/ 最佳答案 Mapshouldbe

php - 用周围的 null,0 替换数组中的值

所以我有一个整数值的集合,它是根据另一个函数的结果构建的,该函数每次都可以有不同的值。在PHP中考虑以下内容:$arr=[0,0,2,2,0,0,0,3,3];我需要转换成:$newArr=[null,0,2,2,0,null,0,3,3];我想要完成的是:如果一个值>0,它的邻居应该是0,其余的应该是null。这里最好的策略是什么? 最佳答案 使用运算符优先级:$zero=true;$arr=[0,0,2,2,0,0,0,3,3];$newArr=[];foreach($arras$k=>$v){if($v){$newArr[]=

php - 使用 php regexp 重新排序字符串的行

我需要使用phpregexp对字符串中的行重新排序。但我不知道如何告诉php不要将同一行更改两次。让我解释一下。输入字符串是:$comment="sometext{Varinat#3smth}{Varinat#4smthelse}{Varinat#1smthelse1}someanothertext{Varinat#2smthelse2}{Varinat#5smthelse5}";我需要订购变体:$comment="sometext{Varinat#1smthelse1}{Varinat#2smthelse2}{Varinat#3smth}someanothertext{Varinat

php - 查找字符串中只出现一次的字符

我正在用PHP编写算法来解决给定的数独谜题。我用两个类设置了一个有点面向对象的实现:一个Square类用于9x9板上的每个单独的图block,以及一个Sudoku类,它有一个矩阵Square代表棋盘。我使用的算法的实现是一种三层方法。第一步,将只解决最基本的难题(但也是最有效的),是根据板的初始设置填充任何只能取单个值的方block,并相应地调整其余部分的约束Unresolved方block。通常,这个“不断传播”的过程并不能完全解决棋盘,但它确实解决了相当大的block。然后第二层将开始。这将解析每个单元(或9个方block,它们必须全部具有唯一的数字分配,例如一行或一列)以获取每个

php - 如何在 php 中将字符转换为 7 位偶校验

我想将一个字符转换为7位偶校验。你能建议我如何实现吗? 最佳答案 太糟糕了,你不能使用x86JPO指令(奇偶校验跳转);-)根据您要处理的数据量,如果您首先设置一个转换表,可能比逐个字符检查/处理更快。$map=array();for($char=0;$char(你可能想彻底测试这段代码,我还没有)然后使用strtr()从ascii7转换为ascii7-evenbit。$input='maryhadalittlelamb';//allcharactersmustbewithintheascii7range$evenbit=strtr

php - 寻找 Jenks 优化——数据分类

我正在寻找用于数据分类的Jenks优化算法的实现。Jenks用于查找数据中的“自然中断”。我想为美国创建kmlmap并根据此算法为每个县着色。我使用的是php,但也能理解其他语言。 最佳答案 这里是pythonhttp://danieljlewis.org/2010/06/07/jenks-natural-breaks-algorithm-in-python/ 关于php-寻找Jenks优化——数据分类,我们在StackOverflow上找到一个类似的问题:

php - 需要从多组列表中获得最佳总和组合的算法(逻辑)

我有多组数据,比如第1组2,3,5,10,15第2组4,6,23,15,12第3组23,34,12,1,5我需要这3组的最佳总和(例如总和(g1+g2+g3)第一个(g1)5+(g2)15+(g3)+5=25(最佳组合)现在,对于下一组组合,无需使用每个对应组的上述值第1组2,3,5,10,15第2组4,6,23,15,12第3组23,34,12,1,5第二(g1)2+(g2)23=25(最佳组合)组12,3,5,10,15第2组4,6,23,15,12第3组23,34,12,1,5第三(g1)15+(g2)6+(g3)+1=22(最佳组合)我希望这可能有点复杂。但我可能会得到更好的解

php - 为此使用什么算法?

我正在为一个游戏Texttwist做研究项目,文本会自动从字典中搜索单词然后打乱,并使用与本网站相同的概念自动处理要找到的单词http://grecni.com/texttwist.php,我还需要提供一个我将用于我的项目的算法,我打算在这个网站中包含这个词unscramblerhttp://grecni.com/texttwist.php但我不知道可能使用什么算法来执行我发布的网站上完成的操作。有谁知道所使用的算法是什么类型,或者您称之为什么,或者可以使用会产生相同结果的算法,将不胜感激该算法的示例。 最佳答案 你想要的数据结构叫

php - 从字符串中提取启发式(模糊)日期?

我在启发式解析包含日期但格式相当随意(未知)的文本字符串时遇到问题。functionparseDateStr($text){$cleanText=filter($text);#...$day=findDay($cleanText);$month=findMonth($cleanText);$year=findYear($cleanText);#..assertconstraints,parseagainorfailreturnsprintf('%04d-%02d-%02d',$year,$month,$day)}输入文本是英语语言加上任意语法符号(如\W正则表达式类的子集)的句子。该算

PHP 比较数组元素作为一个整体

例如我有两个数组,$arrayA=[0=>"A",1=>"B",2=>"C",3=>"C",4=>"E",5=>"F"];$arrayB=[0=>"B",1=>"C"];如果我使用array_intersect():$same=array_intersect($arrayA,$arrayB);我会得到$same的结果1=>B2=>C3=>C相反,我想要实现的是只得到1=>B2=>C更新在尝试了amow和Ekin提供的答案后,我意识到这种方法存在局限性。如果我的数组是下面的形式,$arrayA=[0=>"A",1=>"B",2=>"C",3=>"B",4=>"C",5=>"E",6=>"