Algorithm
chuji2012
这个作者很懒,什么都没留下…
展开
-
链表的冒泡排序
题目冒泡法实现链表排序public class ListNode{ int val; ListNode next; public ListNode(int val) { this.val = val; } }分析冒泡排序,每次扫描一趟获得最大的值。此题注意链表节点的交换。public ListNode Bubble原创 2015-09-27 19:51:43 · 698 阅读 · 0 评论 -
合并两个链表
题目已知两个链表List1和List2各自有序,请把它们合并成一个链表仍然有序。public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }递归方法实现public ListNod原创 2015-09-27 19:43:01 · 387 阅读 · 0 评论 -
两个栈实现队列
题目用两个栈来实现一个队列,完成队列的add和delete操作。 队列中的元素为int类型分析栈的数据结构特点:LIFO(Last Input First Output);队列数据结构特点:FIFO(First Input First Output)。要用两个栈实现队列思路:一个栈用于存储入队的数据即入队栈,另一个栈用于存储出队的数据即出队栈。当出队栈为空的时候,将入队栈数据复制到出队栈。实现imp原创 2015-10-04 11:37:32 · 268 阅读 · 0 评论 -
最长公共子序列(Longest Common Subsequence,LCS)
题目一个序列S任意删除若干个字符得到新序列T,则T叫做S的子序列。两个序列X和Y的公共子序列中,长度最长的那个,定义为X和Y的最长公共子序列。解法 使用二维数组b[m][n] b[i][j]记录序列X和Y的最长公共子序列的长度 实现构建搜索数组b[m][n] /*返回一个记录决定搜索的方向的数组*/ public int[][] LCSGetLength(String A, Strin原创 2015-10-12 22:45:51 · 542 阅读 · 0 评论 -
最长公共子串(Longest Common Substring, LCS)
题目最长公共子串类似最长公共子序列,但是要搞清一个问题就是公共子串要求字符必须连续。例如:字符串13455与145576的最长公共子序列为1455而最长公共子串为455解析 使用二维数组c[m][n] c[i][j]记录序列X和Y的最长公共子串的长度 实现public String LongCommonSubstring(String A, String B){ int[][] dp原创 2015-10-13 09:53:25 · 627 阅读 · 0 评论 -
二叉树递归遍历和非递归遍历
题目用递归和非递归实现二叉树的前序遍历、中序遍历和后序遍历并打印出相应结果。private class TreeNode{ int val; TreeNode left; TreeNode right; public TreeNode(int val) { this.val = val; } }解原创 2015-10-13 11:46:13 · 335 阅读 · 0 评论