文章分类 -  数据结构与算法

摘要:基本思想: 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规 阅读全文
posted @ 2019-05-22 19:05 unique_ptr 阅读(2008) 评论(0) 推荐(1)
摘要:关于最长公共子序列(LCS) 最长公共子序列和最长公共子串是有区别的,之前我一直把它们混淆。 最长公共子序列。 求解最长公共子序列 这是一个动态规划问题。如何求解最长公共子序列(以下用LCS代替)呢?我们假设已经知道Z={z1,z2,...zk}是X={x1,x2,...,xm}和Y={y1,y2, 阅读全文
posted @ 2019-05-22 17:06 unique_ptr 阅读(166) 评论(0) 推荐(0)
摘要:解释:两个鸡蛋一样,只有在达到某个楼层高度时,才会摔碎。可以假设这个摔碎临界楼层是N。 1、最笨的方法——只用一个鸡蛋遍历——N次尝试 一个鸡蛋遍历那就是从一楼顶开始,逐层尝试,如果摔不碎那就继续往上层尝试,直到N层摔碎了。这样就尝试了N次,而且浪费了一个鸡蛋的使用。 2、二分查找——两个鸡蛋,鸡蛋 阅读全文
posted @ 2019-05-11 17:53 unique_ptr 阅读(2124) 评论(1) 推荐(0)
摘要:1 class LRUCache { 2 public: 3 struct Node 4 { 5 int key; 6 int val; 7 Node( int _k, int _v ) : key( _k ), val( _v ) 8 { 9 } 10 }; 1... 阅读全文
posted @ 2019-05-04 18:15 unique_ptr 阅读(958) 评论(0) 推荐(0)
摘要:B树 1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree), "红黑树" (Red Black Tree ),B tree/B+ tree/ B\ tree (B~Tree)。前三者是典型的二叉查找 阅读全文
posted @ 2019-05-04 17:45 unique_ptr 阅读(260) 评论(0) 推荐(0)
摘要:教你透彻了解红黑树 二叉查找树 由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下 阅读全文
posted @ 2019-05-04 17:21 unique_ptr 阅读(145) 评论(0) 推荐(0)