- 博客(2)
- 资源 (7)
- 收藏
- 关注
原创 leetcode Russian Doll Envelopes
题目要求用大信封装小信封,问最多可以这样嵌套多少个。 最简单的做法就是动态规划,01背包问题,把数组排序,先按第一个元素排序,再按第二个元素排序。dp[i]表示以i作为最大信封,0-i个信封,最多装多少个。问题没有后续性,时间复杂度O(n^2) 然而如果我们对第二个元素排序时按从大到小排序,这时候有个神奇的东西诞生了。 问题等价于求LIS(最长上升子序列的长度),倒序第二个元素是为了排除第一
2016-07-18 20:36:52 515
原创 常见几种二分查找
二分查找经典的算法很简单,基本注意下循环终止条件和计算中间值mid坐标时注意一下溢出问题,就可以了。下面给出根据二分查找变形求一些特殊值的算法。有问题烦请值证。 // 经典二分查找 int binary_search( int a[], int n, int value ) { if( n == 0 )return -1; int low = 0, high = n - 1; whil
2016-07-12 15:21:14 440
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人