随笔分类 - javascript算法
通过实际的问题,用算法求解的例子
摘要://查找 function find(str,hasSortArr,callback) { let l=0,r=hasSortArr.length; let index=-1; if(hasSortArr.length>0){ const ri=callback(str,hasSortArr[r-1
阅读全文
摘要:缓存优化查询 const fs=require('fs'); //比较字符基类大小 相同返回0,str1>str2 返回1,str1<str2 返回-1, function str_compare(str1,str2){ let index=0; let dis=0; while (dis 0&&i
阅读全文
摘要://比较字符基类大小 相同返回0,str1>str2 返回1,str1<str2 返回-1,function str_compare(str1,str2){ let index=0; let dis=0; while (dis 0&&index<str1.length){ if(str1.charC
阅读全文
摘要:用四叉树对图像分类,获取tag和key function getMid(num) { if(num%2 0){ return num/2 }else{ return (num+1)/2 } } function getFourTree(rect,[x1,y1,x2,y2],deep) { if(de
阅读全文
摘要:思路是求两个图片的相似度,准确度在0.8左右 "C:\Program Files\nodejs\node.exe" D:\360jinrong\vue-component\tfjs-node\test.js 一 丁 七 万 丈 三 1 三 二 0.8019957983193278 上 下 不 与 丐
阅读全文
摘要://获取公共字符串,key唯一 function getCST(s1,s2) { const arr=[]; let start=0; let n1=0; let n2=0; while (n1<s1.length&&n2<s1.length){ if(s1[n1] s2[n2]){ arr.pus
阅读全文
摘要://求最长相同子特征function LSC (s1, s2) { function getNum(n1,n2) { if(n1<0||n2<0){ return { s1Arr:[], s2Arr:[], num:0 } } const is=s1[n1] s2[n2]?1:0; if(is){
阅读全文
摘要:研究了编辑距离、lcd等字符比较的算法,发现它们的时间复杂度和空间复杂度都在n*m,太复杂了。脑海想了下人是怎么比较字符的,联想出动态规划公式,之后就有了这个字符扫描比较法。 设字符s1长度为n,字符s2长度为m, 当s1[n1]!==s2[n2], 扫描s2求出d1,l1,扫描s1求出d2,l2,
阅读全文
摘要:在遍历html语法树中用到了深度优先遍历和广度优先遍历,就自己用js实现了下 测试
阅读全文
摘要:给定一个正整数N,求出【2、N】中的所有素数。 两种实现方法
阅读全文
摘要://将正整数n划分成一系列正整数之和,求正整数的不同划分个数 //n表示划分的整数,m表示划分的整数最大值 function q(n,m){ if(n<1||m<1){ return 0; }else if(n===1||m===1){ return 1; }else if(n<m){ return q(n,n) }...
阅读全文
摘要:设a,b,c是3个塔座,开始时,在塔座a上有n个圆盘,这些圆盘自上而下,堆叠在一起,编号小1在上,编号大n在下 根据动态规划公式: hanoi(n,a,b,c)=hanoi(n-1,a,c,b)+move(n,a,b)+hanoi(n-1,c,b,a);
阅读全文
摘要:给定一个环形的字符串s,求字符串t,使得t是所有与s长度相同的字串里字典序最小的字符串和最大的字符串 例如: abcdaad 的最小字符串是 aadabcd,最大字符串是dabcdaa ‘5612358’的最小字符串是 ‘1235856’,最大字符串是‘8561235’
阅读全文
摘要:Trie Tree 简介 Trie Tree,又称单词字典树、查找树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 性质 它有3个基本性质: 根节
阅读全文
摘要:已知有流程step1、step2、step3、step4、step5 , 如何控制输出下面过程 例如: 1:step1、step2、step3、step2、step3、step4、step5 2:step1、step2、step4、step5 3:step1、step2、step4、step5、st
阅读全文
摘要://n个骰子的和,组成数字m的可能 function f(n,m) { if(n==1){ return 1; } var len=m-n; var sum=0; while (len>=0){ len-- //当前骰子和剩余骰子不能大于7 if(m-n+1-len<7&&n-1+len<...
阅读全文
摘要:之前面试的时候,面试官问我的一个题目, 问:一个人在w*h的地图上走,每次走一步,先向左走到头,然后向下走,然后向上走,然后向左走,不能重复,求n步所在的位置 如下: 它会依次输出1-64,
阅读全文
摘要://获取数组中两个相加等于0的一对数字,比如[ [ -10, 10 ], [ -5, 5 ] ] var arr=[-5,10,1,-10,3,4,5,9] //对数组进行排序 arr.sort(function(num1,num2){ if(num1>num2)return 1; if(num1num){ s2-- } i...
阅读全文

浙公网安备 33010602011771号