
编程之美
changjiangwuwu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
找出N个浮点数中最大的k个不同的浮点数
N个浮点数中,有相同的浮点数,找出其中最大的k个不同的浮点数; 用容量为k的最小堆存储最大的k个不同的浮点数,堆顶就是k个中最小的浮点数,遍历N个数,与堆顶元素比较大小,若比堆顶元素大,则与之交换,调整最小堆。 void Heap(float heap[],int i,int size) { int l,r,mix; float temp; l原创 2013-06-16 22:02:12 · 1161 阅读 · 3 评论 -
二进制数a,b有多少位不同.
编程之美上扩展问题: 给定两个正整数(二进制表示形式)a、b,问把a变成b需要改变多少位,也就是说,整数a,b的二进制中有多少位是不同的。 对于这个问题,先把a,b进行异或运算,结果是相通位为0,不同位1.之后直接求结果的1的个数。本题方法简单,求一的个数有多种解决方案,这里只讲一种我最喜欢的一种。 typedef unsigned char BYTE; //求二进制数原创 2013-06-16 15:57:15 · 1745 阅读 · 0 评论 -
判断N是否为2的方幂
编程之美相关题目: 给定整数n,判断它是否为2的方幂. 若一个数是二的方幂,则该数的二进制表示1的个数为1.若一个数1的个数为1,则n&(n-1)==0原创 2013-06-16 16:34:43 · 1674 阅读 · 0 评论 -
求大数的最大公约数的最高效方法
求大数x,y的最大公约数,用(x,y)表示x,y的最大公约数。 若x,y都为偶数,则(x,y)=2*(x>>1,y>>1);//>>1表示右移一位 若x为偶数,y为奇数,则(x,y)=(x>>1,y); 若y为偶数,x为奇数,则(x,y)=(x,y>>1); 若x,y都为奇数,则(x,y) = (y,x-y)。//x>y时 时间复杂度为O(log2(max(x,y)))。 int6原创 2013-06-30 22:03:32 · 940 阅读 · 0 评论 -
两个字符串的最长公共子串
例如str1:=“abcd”;str2 = “bcde”; 定义一个二维数组啊arr[4[4]; a b c d b 0 1 0 0 c 0 0 1 0 d 0 0 0 0 e 0 0 0 0 字符串1,2若有相同的字符,对应的数组设置为一,对角线连续为1,对应的为公共子串,找出最长的即可。 void lSubstrin原创 2013-09-15 16:07:01 · 738 阅读 · 0 评论 -
创新工场笔试题
/* 给定一组整数1~n^2;按规则填入到n*n的二维数组中 例如:n = 4 1 3 4 10 2 5 9 11 6 8 12 15 7 13 14 16 */ void function(int **arr,int len,int *val) { int i,j,k,m,n; int flag = 1; arr[0][0] = val[0]; arr[len-1原创 2013-09-16 22:18:58 · 644 阅读 · 0 评论