![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
xj-L
哈哈哈哈哈哈
展开
-
最优编辑距离
最优编辑距离即是将A字符串通过最少的编辑操作实现变成B字符串核心代码:int min(int a,int b,int c){ int tmp=a<b?a:b; return tmp<c?tmp:c;}void editDistance(int len1,int len2){ int i,j; for(i=0;i<=len1;i++) d[i][0]=i; for(j=0;j<原创 2016-11-24 21:47:08 · 1007 阅读 · 0 评论 -
八皇后问题
八皇后问题一个8*8方盘,每个皇后不能再同一行、同一列、同一对角线上,我们可以忽略行(即不保存行,不申请二维数组),直接从第一行算,然后算第二行的皇后,maze[i] = j; 代表着第i行第j列有着一个皇后,我们直接从行开始算,每次判断是否有不符合规则的皇后,因为不计算行,所以 只需判断(x == j)|| (maze[x] == maze[j])|| ((x - j) == (maze原创 2017-03-05 14:55:26 · 230 阅读 · 0 评论 -
常见的排序算法
冒泡排序冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 ----摘自百度百科 functi...原创 2018-07-27 17:35:18 · 137 阅读 · 0 评论 -
最长递增子序列----面试代码题
面试代码题在一组数字中,找出最长一串递增的数字,就是最长递增子序列,比如0, 3, 4, 17, 2, 8, 6, 10数字 0 3 4 17 2 8 6 10 长度 1 2 3 4 2 4 4 5 通过观察我们可以看出最长递增子序列是0, 3, 4, 8, 10或0, 3, 4, ...原创 2018-08-01 16:40:56 · 488 阅读 · 0 评论 -
判断二叉树是否对称
从根节点开始检测二叉树左右节点是否都为空 是否其中一个为空 是否两个都不为空,但左右节点值不等 是否两个都不为空,但左右节点值相等,递归调用function Tree(pTree) { if (!pTree) { return true; } return TreeJug(pTree.left, pTree.right);}functio...原创 2018-08-14 23:07:42 · 2197 阅读 · 0 评论 -
牛客剑指offer----孩子们的游戏(圆圈中最后剩下的数)
题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去.....原创 2018-08-17 18:29:56 · 165 阅读 · 0 评论 -
不用四则运算计算两数之和
这道题中可以使用按位异或,因为按位异或就是不进位加法,进位我们可以使用两个数按位与,可以得出应该进位的数,使用 << 左移符号来进位递归调用,知道 a 为零时返回 b ,b 为零时返回 a 举例:8 + 8 =1000 + 1000 =a 等于按位异或后为 0 b等于按位与之后为 1000,使用左移符号为 10000此时 a 为 0 ,返回 b ,也就是 10...原创 2018-09-06 10:07:31 · 687 阅读 · 0 评论 -
字符串的全排列
方法一:使用 js 中的 reduce 方法function allPermutation(str) { if (str.length === 2) { return [str, str[1] + str[0]]; } return str.split('').reduce((acc, val, idx) => acc.conca...原创 2018-09-23 23:48:16 · 329 阅读 · 0 评论