自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 451

原创 最长上升子序列

最长上升子序列,众所周知,是dp的经典问题。用简单的dp解决的复杂度是O(n方),用dp+二分的方法解决的复杂度是O(nlogn). 1、转移方程: MaxLen (1) = 1 MaxLen (k) = Max { MaxLen (i):1 2、 假定存在一个序列d[1...9]=2 1 5 3 6 4 8 9 7,可以看出LIS长度为5。现在开始一步一步的找出

2017-02-23 14:33:07 272

原创 几种情况的二分写法

之前总是对二分的边界问题把握的不是很好,以致于出现死循环等问题。所以用这篇博文进行总结。 首先,本文所用算法均为左闭右闭的算法,且数组是以非递减顺序排列的。 1、查找是否存在关键值,如有相等的,则返回最左边的那个值的位置。否则,返回-1. 代码如下: int binary_search_1(int a[], int n, int key) { int m, l = 0, r =

2017-02-23 13:48:45 2537 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除