随笔分类 - ~~互联网面试题~~
摘要:刷题注意的事:1、要经常在白板或者纸上写代码,检查是否漏掉情况,然后键入电脑运行测试写的代码;2、用自己最擅长的语言去练习和面试,一般选择的语言是Java,Python,C,C++;3、在睡觉前回忆一下今天刷的题或者阅读一些面试有关的书籍,研究表明睡前回忆或者阅读有非常好的记忆效果(可以参考论文研究...
阅读全文
摘要:今天下午面试的很郁闷,自己语速过快,表达不清楚,容易激动,以后要改善。1、反转字符串,保留原先位置的大小写,如 AbCd 反转后为DcBavoid reverseStr(char* str){ if(str == NULL) return; int len = 0; while...
阅读全文
摘要:1、约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列.#include #include #include #inc...
阅读全文
摘要:参考http://www.cnblogs.com/jiabei521/p/3348780.html出的题目1、题目的意思是 1xN的棋盘上,每个格子有一定的分值,现在有m个卡片,每个卡片上有1~4四种数值,代表走几步,类似小时候的飞行棋游戏,现在有个人站在位置0的初始点,抽取一张卡片,然后根据卡片...
阅读全文
摘要:1、判断三个bool值中是否至少有两个bool为真? 此题有几种不同的解法 (1)传统解法bool leastTwo(bool a, bool b, bool c){ return (a&&b) || (b&&c) || (c&&a);} (2)如果学过电路的可以考虑利用卡诺图化简ret...
阅读全文
摘要:第一种方法: 用两重循环对每对点都试一下,然后取最大值即可,时间复杂度为O(n2)#include #include using namespace std;int maxIndexDiff(int a[],int n){ int maxDiff = -1; for(int i = 0...
阅读全文
摘要:拿到这个题目大部分人的第一个思路是 在x轴[-1,1],y轴[-1,1]的正方形内随机选取一点。然后判断此点是否在圆内(通过计算此点到圆心的距离)。如果在圆内,则此点即为所求;如果不在,则重新选取直到找到为止。正方形的面积为4,圆的面积为pi,所以正方形内的随机点在圆内的概率是pi/4。 如果对...
阅读全文
摘要:1、在半径为1的圆中随机选取一点。2、给定一个未知长度的整数流,如何随机选取一个数3、给定一个数据流,其中包含无穷尽的搜索关键字(比如,人们在谷歌搜索时不断输入的关键字)。如何才能从这个无穷尽的流中随机的选取1000个关键字?
阅读全文
摘要:数据结构应用场景示例哈希表要求所有键值对放入内存,查找可以在常数时间内完成。l 提取某日志访问百度次数最多的IPl 统计不同电话号码的个数堆插入和调整需要O(logn)时间,n为堆元素的个数,而获取堆顶元素只需要常数时间。l 求出海量数据前K大的数l 求海量数据流的中位数BitMap通常记录整数出现...
阅读全文
摘要:给定一颗二叉树,和两个给定的结点,求出这两个结点之间的距离拿到题目时不要认为是求出二叉树的结点之间的最大距离,题目是求两个结点的之间的距离题目有几种情况两个结点分布在根节点的左子树或者右子树一个结点分布在根节点的左子树,一个结点分布在根节点的右子树这两个结点是兄弟结点一个结点是另外结点的祖先结点本题...
阅读全文
摘要:题目大致意思是给出n个排序list,每个list只有两个方法(1)bool goNext(); 判断是否有下一个元素,没有元素返回false, 有元素返回true(2)int next(); 返回下一个链表的值求这个n个排序链表的交集,也就是每个链表都有的元素本题的基本思路是
阅读全文
摘要:#include <iostream>#include <vector>#include <algorithm>using namespace std;double func(double *a,const int n){ double dp[2]={0},maxv = a[0]; dp[0] = a[0]; for(int i = 1; i < n; i ++ ){ dp[i%2] = max(a[i],dp[(i-1)%2]*a[i]); maxv=max(maxv,dp[i%2]); } return maxv;}int main...
阅读全文
摘要:#include <iostream>#include <vector>#include <algorithm>using namespace std;int MaxSum(int *a, int n){ int maxv = -1<<30,value = 0; for(int i = 0 ; i < n ; i ++ ){ value += a[i]; maxv=max(maxv,value); value=max(0,value); } return maxv;}int main(){ int a[8]={-2,-2...
阅读全文