随笔分类 - 算法
摘要:题目描述 地址 : https://leetcode.com/problems/edit distance/description/ <! more 思路 使用 用来表示 的`0~i 1 word2 0~j 1`的最小编辑距离 我们可以知道边界情况: 、`dp[0][j] = j "" dp[0~i
阅读全文
摘要:索引是数据库常见的数据结构,每个后台开发人员都应该对索引背后的数据结构有所了解。 本文通过分析B Tree及B /+Tree数据结构及索引性能分析及磁盘存取原理尝试着回答一下问题: 1. 为什么B Tree适合数据库索引及红黑树的二叉平衡树不适合作为索引 2. B+Tree比BTree做索引的优势
阅读全文
摘要:本文是对 LeetCode "Binary Tree Right Side View" 解法的探讨。 题目: Given a binary tree, imagine yourself standing on the right side of it, return the values of th
阅读全文
摘要:本文是对 LeetCode "Count Primes" 解法的探讨。 题目: Count the number of prime numbers less than a non negative number, n. 尽管题目并没有要我们写一个最优的算法,但是身为一个程序员,优化应该是一种习惯,在
阅读全文
摘要:本文描述了LeetCode 148题 "sort list" 的解法。 题目描述如下: Sort a linked list in O(n log n) time using constant space complexity. 题目要求我们在O(n log n)时间复杂度下完成对单链表的排序,我们
阅读全文
摘要:本文对常见的排序算法进行了总结。 常见排序算法如下: 1. "直接插入排序" 2. "希尔排序" 3. "简单选择排序" 4. "堆排序" 5. "冒泡排序" 6. "快速排序" 7. "归并排序" 8. "基数排序" <! more 它们都属于内部排序,也就是只考虑数据量较小仅需要使用内存的排序算
阅读全文
摘要:二分查找(binary search),也称折半搜索,是一种在 有序数组 中 查找某一特定元素 的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。
阅读全文
摘要:链表作为常考的面试题,并且本身比较灵活,对指针的应用较多。本文对常见的链表面试题Java实现做了整理。 链表节点定义如下: <! more 1. 求单链表中结点的个数 依次遍历链表 2. 将单链表反转 构建一个新的链表,依次将本链表的节点插入到新链表的最前端,即可完成链表的反转。 3. 查找单链表中
阅读全文
摘要:剑指offer第九题Java实现 题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 <! more Java public class Test9 { public static void main(String[] args) { Test9 test9 =
阅读全文
摘要:二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序
阅读全文


浙公网安备 33010602011771号