自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

转载 Longest Increasing Subsequence

解法一: DP  int lis( int arr[], int n ) { int *lis, i, j, max = 0; lis = (int*) malloc ( sizeof( int ) * n ); /* Initialize LIS values for all indexes */ for ( i = 0; i < n; i++ ) li

2014-09-27 13:03:30 237

转载 怎样通过0.5概率的随机函数实现任意概率的随机函数

给定一个随机函数可以按照0.5的概率返回true, 要求实现一个函数返回任意概率的true bool helper(){...} bool prob(double p, bool exp){ if(p return prob(1-p, !exp); if(helper() == exp) return exp; else return prob((p-0.5)*2, exp);

2013-07-17 10:49:49 1024 1

原创 n!末尾含0的个数

编程之美上的一道题 int containZero(int n){ int count = 0; /* 方法一: 遍历 1~n 求每个数能拆成多少个5 并相加 while(n > 0){ int m = n; n--; while(m % 5 == 0 && m > 0){ m = m/5;

2013-07-09 00:57:45 393

转载 01背包

有N个物品 价值为Wi( i = 1...N) 容量为V的背包 物品每次只能取一次(0,1) , 怎么取 使背包中的价值最大 假设 f[i][v] 表示为 前i个物品 在容量为v的价值 则f[i][v] = max(f[i-1][v], f[i-1][v-c[i]] + w[i]) 第一项表示不取第i个物品, 第二项表示取第i 个物品, 然后两者选大者 int c[7] =

2013-05-08 22:04:14 310

转载 一个无序数组中第K大的元素

int partition(int *arr, int n){ int index = rand()%n; swap(arr[index], arr[n-1]); int i = 0; int j = 0; for(;j < n; j++) { if(arr[j] < arr[n-1]){ swap(arr[i

2013-05-03 02:49:17 555

原创 1到n的数组中找出duplicates

从一个1到n的数组中找出重复的元素 空间复杂度为O(1), 时间复杂度O(n) 第一种是将每个数组中的元素放到它对应的位置中去 比如 a[1] = 6, a[6] 如果不是6 则 继续取出a[6] 中的值 继续比较. 如果a[6] 等于6 则说明值重复了 打印该值 并将 该值+n. 扫描一遍数组即可 第二种 将扫描到的数 变为负数 如果下一次在扫描到  说明重复了 void dup1(in

2013-04-30 21:30:15 344

空空如也

空空如也

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

TA关注的人

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