github-july
Yao-Blog
这个作者很懒,什么都没留下…
展开
-
github-july-字符串转换成整数
题目:字符串转换成整数输入一个由数字组成的字符串,把它转换成整数并输出。例如:输入字符串"123",输出整数123。给定函数原型int StrToInt(const char *str) ,实现字符串转换成整数的功能,不能使用库函数atoi。解法:a[i]之前对应的整数位n,则a[i+1]对应的整数为10*n + a[i]注意溢出和鲁棒性原创 2015-09-07 21:46:57 · 531 阅读 · 0 评论 -
github-july-完美洗牌算法
完美洗牌算法题目:有个长度为2n的数组{a1,a2,a3,...,an,b1,b2,b3,...,bn},希望排序后{a1,b1,a2,b2,....,an,bn},请考虑有无时间复杂度o(n),空间复杂度0(1)的解法。解法如果这副牌用a1 a2 a3 a4 b1 b2 b3 b4表示(为简化问题,假设这副牌只有8张牌),然后一分为二之后,左手上的牌可能是a1 a2 a3 a原创 2015-09-13 15:45:31 · 841 阅读 · 0 评论 -
github-july-荷兰国旗
题目描述荷兰国旗原创 2015-09-13 12:00:36 · 683 阅读 · 0 评论 -
github-july-字符串翻转问题
暴力破解 O(m*n)原创 2015-09-07 21:11:12 · 551 阅读 · 0 评论 -
github-july-字符串包含
题目描述给定两个分别由字母组成的字符串A和字符串B,字符串B的长度比字符串A短。请问,如何最快地判断字符串B中所有字母是否都在字符串A里?为了简单起见,我们规定输入的字符串只包含大写英文字母,请实现函数bool StringContains(string &A, string &B)比如,如果是下面两个字符串:String 1:ABCDString 2:BAD答案是true原创 2015-09-07 21:34:45 · 668 阅读 · 0 评论 -
github-july-寻找最小的K个数
寻找最小的k个数题目描述输入n个整数,输出其中最小的k个。解法1:排序,输出最小k个解法2:堆排序,构造小顶堆,排序过程中,输出前k个最小值后停止(不够一次完整的堆排序) O(n*logk)解码3:线性时间查找,类似于快速排序中的划分方法原创 2015-09-11 15:25:47 · 468 阅读 · 0 评论 -
github-july-寻找和为定值的多个数
寻找和为定值的多个数题目描述输入两个整数n和sum,从数列1,2,3.......n 中随意取几个数,使其和等于sum,要求将其中所有的可能组合列出来。解法:类背包问题(递归问题)可以看出这是关于0-1背包问题,可以将问题定义为f(n,m),从1->n中选择多个数,使得之和为m 那么(1)选取n,则剩下从n-1个数中选择和为m-n的数,即原创 2015-09-11 16:58:12 · 580 阅读 · 0 评论 -
github-july-回文判断
题目描述回文,英文palindrome,指一个顺着读和反过来读都一样的字符串,比如madam、我爱我,这样的短句在智力性、趣味性和艺术性上都颇有特色,中国历史上还有很多有趣的回文诗。那么,我们的第一个问题就是:判断一个字串是否是回文?解法1 : 从两端求解解法2: 从中间求解两种时间复杂度均为O(n),但解法2在某些问题中有特殊之处原创 2015-09-07 21:50:43 · 481 阅读 · 0 评论 -
寻找和为定值的两个数
寻找和为定值的两个数题目描述输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(N)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。解法:如果数组是无序的,先排序(N log N),然后用两个指针i,j,各自指向数组的首尾两原创 2015-09-11 15:35:24 · 344 阅读 · 0 评论 -
stringstream输入一行整数(有正有负)
//test.cpp 输入举例 1 2 3 4 -4 -6 -7#include #include #include using namespace std;int count(string input){ int count=0; for(int i=0;i<input.size();i++){ if(input[i]==' ') count ++; }原创 2015-09-26 10:34:54 · 1341 阅读 · 0 评论 -
github-july-字符串的全排列
题目描述输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符abc、acb、bac、bca、cab 和 cba。解法1:递归解法2:字典序原创 2015-09-08 15:04:23 · 566 阅读 · 0 评论 -
github-july-最长回文子串
题目描述给定一个字符串,求它的最长回文子串的长度。解法:可以枚举中心位置,然后再在该位置上用扩展法,记录并更新得到的最长的回文长度注意:回文子串为奇数或者偶数两种情况。原创 2015-09-07 21:57:38 · 418 阅读 · 0 评论 -
github-july-海量数据处理
海量数据处理关联容器分而治之1、海量日志数据,提取出某日访问百度次数最多的那个IP解法:具体分为以下3个步骤a.分而治之/hash映射首先把这一天访问百度日志的所有IP提取出来,然后逐个写入到一个大文件中,接着采用映射的方法,比如%1000,把整个大文件映射为1000个小文件。b.hash_map统计当大文件转化成了小文件,那么我们便可以采用hash_map(i原创 2015-09-16 19:37:30 · 809 阅读 · 0 评论