Posts

Showing posts from February, 2019

生命

人的终点站是死亡 在人出生的那一刻已确定和安排 人人平等 时间是宝贵的 每一天都为了将来更好的自己 无需烦恼 无需后悔 那是浪费时间 做能让自己前进的事

算法的比较

广度优先搜索&深度优先搜索(Breadth First Search & Depth First Search)  BFS优缺点:  同一层的所有节点都会加入队列,所以耗用大量空间  仅能非递归实现  相比DFS较快,空间换时间  适合广度大的图  空间复杂度:邻接矩阵O(N^2);邻接表O(N+E)  时间复杂度:O(V+E)  DFS优缺点:  无论是系统栈还是用户栈保存的节点数都只是树的深度,所以空间耗用小  有递归和非递归实现  由于有大量栈操作(特别是递归实现时候的系统调用),执行速度较BFS慢  适合深度大的图  空间复杂度:邻接矩阵O(N^2);邻接表O(N+E)  时间复杂度:O(V+E) //BFS只能非递归实现,将queue替换成stack之后就是DFS

记住的经典问题和解法

1,lintcode 95. Validate Binary Search Tree class Solution { public : /** * @param root: The root of binary tree. * @return: True if the binary tree is BST, or false */ bool isValidBST (TreeNode * root) { // write your code here if (root == NULL ){ return true ; } if (root->left == NULL && root->right == NULL ){ return true ; } if (root->left != NULL ){ if (root->left->val < root->val){ if (root->left->right != NULL && root->left->right->val >= root->val){ //开始debug第一轮,这个条件忽略了。 return false ; //注意这个条件,在分问题中不能解决的条件,要放在分前解决 } } else { return false ; } } if (root->right != NULL ){ if (root->right->val > root->val){ if (root->right->left != NU...