在通过汉诺塔问题理解递归的精髓中我讲解了怎么把一个复杂的问题一步步recursively划分了成简单显而易见的小问题。其实这个解决问题的思路就是算法中常用的divide
and conquer, 这篇日志通过解决矩阵的乘法,来了解另外一个基本divide and conque思想的strassen算...
分类:
其他好文 时间:
2014-05-26 11:53:42
阅读次数:
365
基础问题项目中实现了哪些模块。以及怎么实现的。有没有做数据库的优化。写过多少行代码。程序实现1.字符串中单词逆转2.7个不同数中选3个数组合。用递归实现系统架构一个系统用来更新数据库,一个系统同来缓存数据库用来快速获取数据。如何保证缓存和数据库系统的一致性。数据库很大,上亿数据思路:增量更新。方法:...
分类:
其他好文 时间:
2014-05-26 11:32:39
阅读次数:
276
原题地址:https://oj.leetcode.com/problems/validate-binary-search-tree/题意:检测一颗二叉树是否是二叉查找树。解题思路:看到二叉树我们首先想到需要进行递归来解决问题。这道题递归的比较巧妙。让我们来看下面一棵树:
...
分类:
编程语言 时间:
2014-05-26 10:48:19
阅读次数:
291
原题地址:https://oj.leetcode.com/problems/same-tree/题意:判断两棵树是否是同一棵树。解题思路:这题比较简单。用递归来做。首先判断两个根节点的值是否相同,如果相同,递归判断根的左右子树。代码:#
Definition for a binary tree n....
分类:
编程语言 时间:
2014-05-26 10:30:17
阅读次数:
289
原题地址:https://oj.leetcode.com/problems/n-queens/题意:经典的N皇后问题。解题思路:这类型问题统称为递归回溯问题,也可以叫做对决策树的深度优先搜索(dfs)。N皇后问题有个技巧的关键在于棋盘的表示方法,这里使用一个数组就可以表达了。比如board=[1,
...
分类:
编程语言 时间:
2014-05-26 10:07:52
阅读次数:
274
原题地址:https://oj.leetcode.com/problems/n-queens-ii/题意:和N-Queens这道题其实是一样的,只不过这次要求返回的时N皇后的解的个数的问题。解题思路:上道题使用了递归回溯的解法,这道题我们可以使用非递归回溯来解决,因为如果使用递归回溯来解决,那么代码...
分类:
编程语言 时间:
2014-05-26 08:14:55
阅读次数:
288
题目:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。分析:首先不能创建新的结构,只能在树的前提下进行改变指针的指向。又由于是二叉搜索树,可以通过画图分析可知,二叉搜索树的左子树小于根节点小于右子树,可以发现是个递归过程也是一个中序遍...
分类:
其他好文 时间:
2014-05-26 08:01:04
阅读次数:
169
下面是反转一个链表的两种方法:
一、循环算法
// //反转一个链表,循环算法
// LinkList Reverse(LinkList& head)
// {
// // if(!head)
// // return head;
// //此时不用判断head是否为空,如是空的话返回的也是空
// LinkList cur = head;
// LinkList hou;
//...
分类:
其他好文 时间:
2014-05-26 03:20:47
阅读次数:
211
题目:给定一个由参数m,n表示行数和列数而形成的2维表格,以左上为出发点,右下为目的地,每次只能向右走一步,或者向下走一步,算出总共存在多少不同的到达路径。
分析;这个问题的递归属性是很明显的,因为无论向右走还是向下走,到达一个新的位置,这时就变成了在该新位置到达目的地有多少不同的路径。其次,向右走和向下走是不同的路径,最终的结果应该是二者的和。
递归的返回条件:n = 1 或 m = 1, ...
分类:
其他好文 时间:
2014-05-24 21:58:45
阅读次数:
243
#include#include#include#include#include#include#includeusing
namespace std;class node{public: int val; node* left; node* right; node():va...
分类:
其他好文 时间:
2014-05-24 08:57:31
阅读次数:
270