摘要: 编辑距离:两个字符串仅通过1.替换一个字母 2.删/增一个字母 变成另外一个字符串所需要的最小的步骤数 状态转移方程是: 1. if(s[i] == t[j]) res[i][j] = res[i-1][j-1]; 2. else res[i][j] = res[i-1][j-1], res[i-1 阅读全文
posted @ 2016-06-28 08:47 warmland 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 算出两个list的长度,然后让长的那个往前移动长度差别。 这样两个list就是从同样长度的地方开始同时往后移动,如果两个头合在一起,或者到了linkedlist的尾部,就返回结果 阅读全文
posted @ 2016-06-28 07:26 warmland 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 先把数组排序,然后每一个数的位置上最长的序列是这个数之前的位置最长序列+1。这样一遍走完就可以知道最长的序列是多少,但是除了最长序列还需要知道那个序列,所以另外一个记录由哪个位置来的。因为最后一个数字未必会构成最长序列,所以还需要找到一个最长序列的那个结尾,一个max, maxPos. 所以维持四个 阅读全文
posted @ 2016-06-28 06:33 warmland 阅读(163) 评论(0) 推荐(0) 编辑
摘要: binary search但是三个数的时候单独处理 阅读全文
posted @ 2016-06-28 05:25 warmland 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 维持三个变量,localMax, localMin, global. 需要注意的是更细localMax/localMin的时候,后更新的那个需要先更新的那个的原始值,所以需要存一下 阅读全文
posted @ 2016-06-28 04:25 warmland 阅读(129) 评论(0) 推荐(0) 编辑