- 博客(4)
- 收藏
- 关注
原创 排列和组合的java实现
排列和组合的关系:A(2,3)=C(1,3)*C(1,2) 排列permutation public class Main { public static void main(String[] args) { char[] arr={'a','b','c'}; permutation(arr, 0); } private static void perm...
2018-09-19 22:21:17
318
原创 最长有效匹配括号java实现
原理:()(()()( 的有效长度为4, (a)的有效长度为0,()a()()的有效长度为4,())(()()的有效长度为4; 也就是说有左括号就必须得有对应的右括号,而且括号之间不能含有其他字符,才能算有效。 首先:利用的栈Stack来实现,除了左括号和右括号的符号,我们称它们为其他符号。 从左往右看:遇到左括号和其他其他符号就入栈,遇到右括号就判断栈顶字符是否为左括号,是就匹配上了,就弹栈...
2018-08-23 10:10:20
1224
原创 最长重复子串java实现
原理:一个字符串的重复子串的最长长度只能小于等于length/2; 所以从length/2开始递减循环,每次取出理论最长子串,在判断剩下的字符串里面有没有理论串,有就找到结果; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner scanner=n...
2018-08-23 09:46:10
1577
2
原创 递归算法和转换成非递归算法
主要有两种方法:1、直接转换 2、间接转换 1.直接转换 思想:将递归转换为递推,用变量来保存计算的中间结果。 如果我们只有一个中间中间变量(比如求阶乘),那么就想当于只用了一个栈,每一次递推的结果都会覆盖掉上一次递推的结果。 适用范围:尾递归和单向递归等简单递归问题。(可以不用回溯的递归) 具体实现:1.将递归转循环 2.将递归写成标准的尾递归,在标准尾递归的参数...
2018-05-04 19:48:51
1275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅