![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
文章平均质量分 56
Geek-k
这个作者很懒,什么都没留下…
展开
-
lCS——最长公共子序列
首先说一下最长公共子序列和最长公共子串的区别。公共最长子序列是可以对你要比较的字符串进行一个或多个的字符删除后所留下的串,不要求一定连续。而最长公共子串要求结果的串一定是连续的。 例如:String s1=”ABCD”; Stirng s2=”BCAD”; 所以最长公共子序列是BCD.而最长公共子串是BC. 下面介绍算法的具原创 2015-10-23 09:34:20 · 262 阅读 · 0 评论 -
括号匹配
左右括号的匹配问题,可以用栈来很好的解决。 1. 遇到左括号,就入栈。 2. 遇到右括号,判断此时栈是否为空。 * 栈为空,说明右括号多。 * 不为空,判断栈顶元素与该右括号是否对应,不对应,说明不匹配。如{(};若匹配则出栈。 3. 最后,遍历整个Str后,若栈为空,说明完全匹配,若栈不空,说明左括号多。import java.util.Stack; public class Bra原创 2016-11-15 14:52:28 · 565 阅读 · 1 评论 -
选钱博弈问题
下面的这道问题是某公司的校招题,近日听了程云老师的讲解,觉得恍然大悟。遂总结如下: 【题目】给定一个整型数组money,代表数值不同的钱排成一条线。玩家A和玩家B依次拿走每张钱,规定玩家A先拿,玩家B后拿,但是每个玩家每次只能拿走最左或最右的钱,玩家A和玩家B都绝顶聪明。请返回最后获胜者的钱数。【举例】arr=[1,2,100,4]。 开始时玩家A只能拿走1或4。如果玩家A拿走1,则排列变为[2,原创 2016-11-10 09:53:39 · 300 阅读 · 0 评论