
算法
ywcoderdont
这个作者很懒,什么都没留下…
展开
-
麻将胡牌判定方法-索引法
麻将胡牌判定方法(查表法,翻译自http://hp.vector.co.jp/authors/VA046927/mjscore/mjalgorism.html)麻将高速判定胡牌方法说明使用索引法如何检查所有形式的胡顺子和刻子的构成提前判定角色(顺子 刻子 等)源代码go语言生成所有胡牌组合源代码麻将高速判定胡牌方法说明麻将胡牌判定通常使用的方法是回溯法,但是由于回溯法需要暴力检查麻将面值组合,...翻译 2019-01-11 16:21:07 · 7988 阅读 · 0 评论 -
Rabin-Karp 算法(字符串快速查找,基于go语言)
之前在领扣做题目的时候,遇到一个字符串匹配的问题,想到了Rabin-Karp算法,但是具体细节已经忘了。所以写一篇文章来温故而知新一下。 普通的字符串子串匹配时耗时又耗力,最主要的原因是匹配一个串时不能利用上一次匹配的结果,就导致有些串需要重新计算匹配。所以只要好好利用上一次匹配的信息,就能够提升查询效率。 我们在比较字符串的时候可能回想为什么我们要一个一个比较,而不能一次性比较,就像...原创 2019-05-27 17:33:46 · 521 阅读 · 0 评论 -
算法练习之 564.求出大于或等于 N 的最小回文素数。
问题要求:求出大于或等于N的最小回文素数。知识点回顾:素数:如果一个数大于1,且其因数只有1和他自身,那么这个数就是素数。例如:2,3,5,7回文数:一个数如果从左往右读与从右往左读是一样的,那么这个数就是回文数。比如:12321参考用例:示例1:输入6,输出7示例2:输入8,输出11示例3:输入13,输出101提示1<=N<=10^8答案肯定存在,并且小于2*1...原创 2019-04-17 19:22:16 · 3685 阅读 · 3 评论 -
麻将Ai设计思路(go语言实现)
设计思路由于麻将胡牌规则固定(只是牌型不同):3m+2(3指的是顺子、刻子,2指的是将牌(一对))。比如有个牌型123万789条白白白中中,这个手牌就是胡牌的牌型,其中m=3。 想要形成胡牌的牌型,我们需要保留当前牌型中的顺子、刻子和对,以及可以形成成顺子的差一张牌的牌(比如13,差一张2。比如34,差一个2或者5。)。这样子拆分后的牌剩下的只有单牌,所以我们出牌时可以先将单牌打出,然后再根据...原创 2019-03-05 10:51:24 · 7492 阅读 · 4 评论 -
算法练习之 564.寻找最近的回文数
题目给定一个整数 n ,你需要找到与它最近的回文数(不包括自身)。“最近的”定义为两个整数差的绝对值最小。示例 1:输入: “123”输出: “121”注意:n 是由字符串表示的正整数,其长度不超过18。思路分析一个数字附近的回文数有很多个,想要寻找最近的一个回文数,我们不可能通过遍历其所有回文数来达到目的。所以这时候就需要给这个数的相近回文数一个范围,查找这个范围内的回文数,然...原创 2019-02-25 19:48:51 · 1641 阅读 · 0 评论 -
算法练习之 20.有效的括号
题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入:...原创 2019-02-17 14:23:30 · 257 阅读 · 0 评论 -
算法练习之 862. 和至少为 K 的最短子数组
题目描述返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K 。如果没有和至少为 K 的非空子数组,返回 -1 。示例 1:输入:A = [1], K = 1输出:1示例 2:输入:A = [1,2], K = 4输出:-1示例 3:输入:A = [2,-1,2], K = 3输出:3提示:1 &lt;= A.length &lt;= 50000...原创 2019-02-22 12:25:41 · 818 阅读 · 0 评论 -
算法练习之 19.删除链表倒数第n个节点算法
问题:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1-&gt;2-&gt;3-&gt;4-&gt;5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1-&gt;2-&gt;3-&gt;5.说明:给定的 n 保证是有效的。定义:链表定义如下: //Definition for singly-linked list. type原创 2019-02-15 18:35:39 · 311 阅读 · 0 评论 -
麻将番型计算(二人麻将)
上一篇文章序数了关于使用索引查表法进行麻将胡牌判定,这篇文章,我们将会对胡牌的番型进行计算,这里的番型指的是国标下的麻将番型,文章中的代码,暂时只考虑了二人麻将(只有万牌和字牌),想要通用,可以按着同样的方法进行扩展。国标二人麻将番型表88番番型胡牌方式示例大四喜胡牌时,牌里有4组风刻子(杠)加一对将牌组成的牌型。(不计门风刻、圈风刻、小四喜、三风刻、碰碰胡、幺九刻)...原创 2019-01-21 15:38:32 · 15591 阅读 · 5 评论 -
算法练习之 878.第N个神奇的数字
题目原型 神奇的数字:如果正整数X可以被A或B整除,那么它是神奇的。 求:返回第N个神奇数字。由于答案可能非常大,返回它模10^9 + 7 的结果。 示例: 输入N=1, A =2, B =3; 输出:2 输入N=4, A =2, B =3; 输出:6 输入N=5, A =2, B =4; 输出:10 输入N=3, A =6, B =4; 输出:8 提示:...原创 2019-07-03 16:09:10 · 1250 阅读 · 0 评论