记录一些算法实践目录Java篇一、基础算法七种基础排序二叉堆K选取问题链表判环问题N皇后问题两指针扫描算法举例位运算(求首个bit1,求bit1的个数,寻找奇数项)最小栈的实现横纵有序二维数组之元素查找A*算法同时寻找序列的最大最小值二、字符串蛮力字符串匹配KMP逆波兰表达式三、DP和贪心算法专题钢条切割问题最大借书量问题硬币收集问题找零问题矩阵链乘法问题最长公共子序列(LCS)最短编辑距离问题最长回文子序列(LPS)0-1背包问题DNA序列对齐问题活动选择问题赫夫曼编码JavaScript篇一、排序冒泡排序选择排序插入排序希尔排序归并排序快速排序堆排序二、查找二分查找三、其他求区间问题求第K大元素寻找两数之和为sum的元素平移数组两数组第K值数组去重三色排序盛水问题数组分界值买股票问题随机红包问题四、DP问题Repost数字三角形问题最长递增子序列0-1背包问题连续子序列最大和数字矩形最大路径和爬楼梯最长公共子串最长公共子序列五、字符串字符判重六、树遍历(前、中、后序,层次遍历)二叉搜索树二叉搜索树最近公共祖先二叉树最近公共祖先(一)二叉树最近公共祖先(二)随机构造二叉树AVL树红黑树左倾红黑树翻转二叉树中序遍历下的前驱和后继二叉搜索树最邻近结点二叉树路径和参考资料《进军硅谷》《算法设计与分析基础》《算法导论》