编程
文章平均质量分 67
范涛
1:硕士毕业于中国科学技术大学;
2:曾就职深圳腾讯,现在就职百度
3:sina微博http://www.weibo.com/1680645085/
4:关注机器学习,数据挖掘,推荐系统和金融风险模型
展开
-
平衡三进制的转换问题
给定一个数,如何把用三进制表示,就像5= 9-3-1? #include using namespace std;void transform_ternary3 (int num){ int m = 0; vector seri; if (!num){ cout << 0 <<endl; return; } int flag = 1;原创 2013-09-21 13:58:55 · 1646 阅读 · 0 评论 -
编程: 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
题目:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。要求:空间复杂度O(1),时间复杂度为O(n)。解答:刚看到这个题目的时候, 我的第一反应就是,这不就是一趟快速排序的思想吗? 整理下思路,果然如此。果断写出代码:#include void left_odd(int *a, int n){ int tmp; int low, high原创 2012-09-14 10:55:20 · 1286 阅读 · 0 评论 -
反转字符串,单词内部顺序不变
/*输入: we are friends.反转后: friends are we.*/#include #include /* 函数功能: 反转字符串,单词内部顺序不变; 参数: 输入的字符串; 返回值: 空。 */void word_invert(char *s){ int len = strlen(s); int i =0 ; int begin原创 2012-11-28 21:11:31 · 973 阅读 · 0 评论 -
删除字符串中的“b”和“ac”
删除字符串中的“b”和“ac”,需要满足如下的条件:字符串只能遍历一次;不能够实用额外的空间。例如:acbac ==> "";aaac ==> aa;ababac ==> aa;bbbbd ==> d #include using namespace std;void delete_chars(char * str){ int location = 0; int原创 2013-09-21 15:02:40 · 2158 阅读 · 0 评论 -
求子序列的长度
子序列的定义:对于一个序列a=a[1],a[2],......a[n],则非空序列a'=a[p1],a[p2]......a[pm]为a的一个子序列,其中1例如:4,14,2,3和14,1,2,3都为4,13,14,1,2,3的子序列。对于给出序列a,有些子序列可能是相同的,这里只算做1个,要求输出a的不同子序列的数量。输入: 长度为n的数组1原创 2013-09-24 16:59:32 · 1085 阅读 · 0 评论 -
大整数相乘
#include #include #include /*函数功能: 大整数相乘;参数: 大整数a, 大整数 b;返回值: 乘积结果 c;*/char * big_data_mul(char *a, char *b){ char * c = (char *)malloc(strlen(a)+strlen(b)+1); int len_a = strlen(a); int原创 2012-11-28 21:16:40 · 498 阅读 · 0 评论 -
111000这样的字符串转换成101010。。。
输入:1111100000:转换后成为: 1010101010.#include #include void transform_interval(int *a, int N){ int i = 0, j=0; int tmp =0; int m = N/2; // 考虑奇数情况。 if (m%2 !=0){ j+=1原创 2012-11-28 21:22:17 · 830 阅读 · 0 评论 -
没有交集的区间求解
当有这样的区间【0,4】,【6,12】,【5,9】,【7,10】, 区间之间有交叉,即交集。要求求出没有交集的区间集合,包含以上所有的区间范围。结果如: 【0,4】【5,6】【6,7】【7,9】 【9,10】 【10,12】 void Get_unoverlap_interval(const vector> & sinterval, vector> & sre){ vecto原创 2012-12-25 23:50:32 · 895 阅读 · 0 评论 -
给定两个有序的n长度的数组,如何找出这两个数组合并后的中位数?
给定两个有序的n长度的数组,如何找出这两个数组合并后的中位数?(1) o(n)的时间复杂度。这个就像两个有序链表合并一样,设定一个变量,记录合并数的索引,一旦等于n,即停止,当前值卫中位数。(2)log(n)时间复杂度。通过比较两个数组中位数的大小,可以把查找范围缩小一半。#include using namespace std;//log(n) time;int原创 2013-09-21 14:08:19 · 1069 阅读 · 0 评论 -
给定长度为n的整数数列:a0,a1,..,an-1,以及整数S。这个数列会有连续的子序列的整数总和大于S的,求这些数列中,最小的长度。
给定长度为n的整数数列:a0,a1,..,an-1,以及整数S。这个数列会有连续的子序列的整数总和大于S的,求这些数列中,最小的长度。#include using namespace std;int min_seri_len(int *a, int n, int S){ int i = 0; int j = 0; int min_len = 0; int * sum原创 2013-09-21 19:09:45 · 5747 阅读 · 0 评论 -
读 双数组Trie树算法优化
以前,做过一个翻译的程序,处理的只是英文字符,当时做的,构造了一个26叉树(26个英文字母,每一个字母对应一个树结果),当时也不知道这对应的数据结构术语是什么? 后来一个巧合的机会知道了Trie树数据结构,发现我以前做的那个26叉树不就是一个Trie树吗?其实对英文字符来说,构造一个26叉树也行,占用的空间也不是很大。但是针对汉语词典(6763个常用汉字),这个就有问题了,需要一个好的对Trie树原创 2012-05-17 13:52:48 · 1201 阅读 · 0 评论 -
如何找出那个不存在的数?
给定一个长度为N-1的数组,里面存放1-N范围的数,没有重复。说明,1-N范围内有一个数必定不在里面。如何找出这个数?注意,原来的数组不一定有序. 这个题目可以扩展到海量数据处理上,比如一个40亿的个数的文件,如何查找里面那个数不存在。下面,是我贴出的代码。main函数里面是自己构造的数组,这里并没有把数组a随机排列,但不影响结果。 #include #include #i原创 2012-09-14 10:14:01 · 1200 阅读 · 0 评论 -
TopCode google题目
本题为 Google “Top Coder”850分例题。假设有这样一种字符串,它们的长度不大于 26,而且若一个这样的字符串其长度为 m ,则这个字符串必定由 a, b, c ... z中的前 m 个字母构成,同时保证每个字母出现且仅出现一次。比方说某个字符串长度为 5 ,那么它一定是由 a, b, c, d, e 这 5 个字母构成。一旦长度确定,这个字符串中有哪些字母也就确定了,唯一的区别就原创 2012-09-14 10:43:51 · 647 阅读 · 0 评论 -
已知二叉树中序,先序,构建树。
已知二叉树中序,先序,构建树。#include #include #include #include #include #include using namespace std;typedef struct binode{ char key; binode * left, * right;}BiNode, * BiTree;// time complex O(原创 2012-11-28 21:25:01 · 685 阅读 · 0 评论 -
并查集实现
当集合a= {1,2,3} ,b ={3,5}, c= {7,8}, d ={9,10,5} 存在时候,若要生成若干个不想交的集合,是这集合的合集。这时候用到并查集。最重要的应用就是朋友圈的划定,或者求连通图。 如结果:{1,2,3,5,9,10},{7,8}; #include #include #include #include #include #include u原创 2012-12-25 23:36:41 · 553 阅读 · 0 评论 -
Spark Graphx 进行团伙的识别(community detection)
在金融科技领域,尤其风控领域,会有各种重要的关联网络,并且这种网络图十分庞大。 下面以设备间关联网络为例,采用Graphx做一个设备团伙挖掘demo。团伙识别的算法采用的是Graphx自带的LabelPropagation算法原创 2017-03-31 10:57:57 · 11231 阅读 · 4 评论