算法
jpbirdy
笨鸟,当先飞
展开
-
给定有序序列 a,b,求出所有a[i]+b[j]中所的第k小的数
算法:a[1]+b[1]一定是最小的,退出;a[1]+b[2],a[2]+b[1]放入堆,得到一个小根堆退出根a[x]+b[y],进入一个元素a[x]+b[y+1],如果y==1再进入a[x+1]+b[y]重复上面步骤,退出k个数就得到最小的k个数(复杂度O(klogk))因为退出的是堆的根,假设是a[x]+b[y],如果在剩下的数中还存在一个数比a[x]+b[y+原创 2012-11-12 14:06:00 · 1132 阅读 · 0 评论 -
12个球有一个重量和别的不同,至少称几次可以求出这个重量不同的球
解法如下图所示:原创 2012-11-14 18:38:04 · 1397 阅读 · 0 评论 -
告诉我怎么实现自定义的加减乘除?
告诉我怎么实现自定义的加减乘除?例如:1+2*5+(6+2)*3这种。我自己要判断先后原创 2014-12-29 19:39:29 · 923 阅读 · 0 评论 -
给定一个无序数组,求这组数在排序后相邻数间差的最大值
题目来源:https://oj.leetcode.com/problems/maximum-gap/题目大意:RT这个题最差的方式是排序,当然时间复杂度是nlogn。是否有n的方法呢?假设这组数的最大值为max,最小值为min,对于这样的数据,最差情况就是所有的值的差都相同,那么相邻的最大值为(max-min)/(n-1)。而且修改任何一个数字都将造成结果的增加。通过这种方法,原创 2015-01-16 17:36:34 · 4454 阅读 · 0 评论 -
哈弗曼编码
给定任意一个字符串,给出哈弗曼编码#include #include #include #include #include #include using namespace std;typedef string huff_type;struct huff_node{ huff_node *left,*right; int wight; huff_t原创 2014-12-29 18:34:54 · 846 阅读 · 0 评论 -
JAVA 进制转换
将int型的数转换为某个进制的字符串,常用的是二、八、十六,Integer类中提供了一些静态方法:1、Integer.toBinaryString(i)2、Integer.toOctalString(i)3、Integer.toHexString(i)应该不用解释了,返回的是字符串。都知道Integer中还提供了parseInt方法,而这个方法还可以设定被转换的字符原创 2012-03-05 14:05:18 · 432 阅读 · 0 评论 -
给定一个阿拉伯数字的钱数,将其转换为大写(包括小数点)
算法思想:从低位到高位,每8位一分割,该组的数读法与前后都相对独立。然后就是分析怎么来转换这个亿以内的数。某位上如果不是0,则转换为该数对应的大写,加上该位对应的单位。如果是0,则前后连续的0都转换为零。注意0如果出现在最后几个,比如1000,后面的0就不转换#include #include #include #include #include #include #i原创 2012-10-15 15:05:09 · 1991 阅读 · 0 评论 -
蚊香数组问题解决
1 2 38 9 47 6 5给定一个数字N,求出如图所示的一个表格,输出。#include #include int get_q(int x,int y,int n){ int min = 9999999L; if(x<min) min=x; if(y<min) min=y; if((n-x-1)<min) min=n-x-1;原创 2012-07-09 16:14:52 · 1125 阅读 · 0 评论 -
大数加法字符串版本
大数+大数。#include #include #include using namespace std;char * add(char *a ,char *b ,char *c){ int lena = strlen(a); int lenb = strlen(b); int lenc = 0; int righta ,rightb ;原创 2014-10-28 14:58:29 · 577 阅读 · 0 评论 -
数,各位上的数最大值和最小值的乘积
#include #include #include using namespace std;int maxminmul(char *str){ int maxn,minn ; maxn = -1; minn = 10; int len = strlen(str); for(int i=0 ; i<len ; i++) {原创 2014-10-28 18:51:05 · 1393 阅读 · 0 评论 -
大数乘法,大数×大数字符串版
大数乘大数#include #include #include using namespace std;char * multiply(char *a,char *b,char *c){ int i,j; int righta,rightb,up,jj; int len1 = strlen(a); int len2 = strlen(b);原创 2014-10-28 17:21:02 · 921 阅读 · 0 评论 -
求区间并的个数
#include #include #include using namespace std;struct node{ int s,e;};int cmp(void const *a,void const *b){ node *na ,*nb; na = (node *)a; nb = (node *)b; if(na->s s) re原创 2014-10-28 19:55:19 · 1015 阅读 · 0 评论 -
秒表法写出从小到大n位以内的所有数
这个是《剑指OFFER》上的一个面试题,题目要求写出n位数,当然题目的xianjin原创 2014-09-02 20:45:39 · 1143 阅读 · 0 评论 -
使用8个8进行任意拼接和四则运算,算出1000的计算步骤
一个穷举搜索题。基本思路与穷举计算24点类似,24点是4个数,而这个是8个数原创 2014-05-09 01:32:24 · 2010 阅读 · 0 评论 -
7次比较,对5个数进行排序
a,b,c,d 一组,e一组a,b,c,d两两分组,比较a,bc,d得出较小值,不妨设是a,c,在再比较一次,不妨设a3次比较可以得到两个不等式1、a2、a将e用二分插入法插入到不等式1中,最坏情况下有a由于已经有不等式a若e出现在a之前,得到的是e综上最坏情况最少需要7次可以对abcde进行排序。原创 2012-11-14 18:35:48 · 1713 阅读 · 0 评论 -
用6次比较,求5个数的中位数
有5个数a,b,c,d,ea,b,c,d 一组,e一组a,b,c,d两两分组,比较a,bc,d得出较小值,不妨设是a,c,在再比较一次,不妨设a3次比较可以得到两个不等式1、a2、a将b,e比较,1次1、b得到不等式 a a 比较c,b, 1.1、若cd,有a原创 2012-11-14 10:23:54 · 5280 阅读 · 0 评论 -
判断nan的方法
python在数据预处理的时候,经常遇到需要对空值进行处理的地方。空值在python中的表现一般为:1、None2、False3、''4、nan前3个很容易判断,直接=就可以了,第四种比较蛋疼,因为你会发现,它无法用==进行判断(这个跟nan的原因有关),这里要从nan的是啥说起。NaN(not a number),在数学表示上表示一个无法表示的数,这里一般还会有另一个原创 2016-08-27 04:33:59 · 59862 阅读 · 9 评论