摘要: 有一个经典问题: 长度为n的序列,插入若干数字后,让其形成回文串。求插入的数字最少的个数p p=n-最长公共子序列 最长公共子序列可以利用动态规划的思想,具体可以用下面这个图来表示: 将序列打印出来 阅读全文
posted @ 2018-03-17 17:40 blueattack 阅读(1674) 评论(0) 推荐(0) 编辑
摘要: 最长上升子序列是对于一个给定的序列求出最长的一个序列(不需要连续),该序列是上升的。这个问题可以有O(n^2)和O(nlogn)两种解法 O(n^2)采取动态规划的思想,f[i]表示以第i个元素结尾的序列最长上升的子序列长度 O(nlogn) 阅读全文
posted @ 2018-03-17 17:23 blueattack 阅读(301) 评论(0) 推荐(0) 编辑
摘要: In the big cities, the subway systems always look so complex to the visitors. To give you some sense, the following figure shows the map of Beijing su 阅读全文
posted @ 2018-03-17 13:33 blueattack 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 堆排序是一种选择排序,其最好,最坏,平均时间复杂度均为O(nlogn),是一种不稳定的排序。 首先我们来认识一下堆的结构。 对于大顶堆,其根节点的值要大于左右孩子,小顶堆则相反。那么我们可以利用满二叉树的性质,用数组来存储堆结构。i是根节点,则左右孩子为2*i和2*i+1 堆排序的算法顺序如下: 1 阅读全文
posted @ 2018-03-17 10:16 blueattack 阅读(116) 评论(0) 推荐(0) 编辑