- 博客(3)
- 收藏
- 关注
原创 stl中的upper_bound和lower_bound
lower_bound:返回最小的大于等于key的位置upper_bound:返回最大的小于等于key的位置头文件:algorithm注意:当使用lower_bound时key的值大于最大的值,查找到的位置是越界的(最大下标+1) 而当使用upper_bound的key的值小于最小的值,查找到的位置是第一个下标格式:假设数组为a,长度为n,pos = lower_boun
2017-02-23 18:07:58 411
原创 最长上升子序列
最长上升子序列,众所周知,是dp的经典问题。用简单的dp解决的复杂度是O(n方),用dp+二分的方法解决的复杂度是O(nlogn).1、转移方程:MaxLen (1) = 1MaxLen (k) = Max { MaxLen (i):12、假定存在一个序列d[1...9]=2 1 5 3 6 4 8 9 7,可以看出LIS长度为5。现在开始一步一步的找出
2017-02-23 14:33:07 236
原创 几种情况的二分写法
之前总是对二分的边界问题把握的不是很好,以致于出现死循环等问题。所以用这篇博文进行总结。首先,本文所用算法均为左闭右闭的算法,且数组是以非递减顺序排列的。1、查找是否存在关键值,如有相等的,则返回最左边的那个值的位置。否则,返回-1.代码如下:int binary_search_1(int a[], int n, int key){ int m, l = 0, r =
2017-02-23 13:48:45 2465 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人