
面试积累
文章平均质量分 67
NEOMc
这个作者很懒,什么都没留下…
展开
-
时隔十年,再次上路 LRU缓存
这个博客是为了十年前找工作时候创建的,用来记录自己的积累,没想到,一晃十年,我又回到了这里,想Mark下,时光弹指一瞬,令人唏嘘。使用一个Map来存储数据,使用双端链表来做LRU元素排序,新访问的元素插入表尾,最早的元素就被排序到表头了。注意元素为0个的判定和处理。map里要保存在双端链表的位置,使用一个node结构体都保存了。Problem: 146. LRU 缓存。get是o(1), put也是o(1)原创 2023-07-07 14:17:09 · 738 阅读 · 0 评论 -
主定理和递归式复杂度分析
主定理和递归式复杂度分析几个约定:文中为了方便,用logn代替log2n.由于文章公式用LaTeX处理,所以不排除出现漏打,错打等情况,如您发现,麻烦通知,thx1.前情提要众所周知,递归是算法的一个重要表现形式,不仅作用大,而且其复杂度的分析也比其他方式要繁杂。但是,如果抛开某些很NB,很强大,很邪恶的递归式不谈,如果不能有效的确定普通转载 2012-10-01 20:38:19 · 6372 阅读 · 0 评论 -
数据挖掘工程师面试指南
转自:http://xccds1977.blogspot.com/2012/03/blog-post_14.html英文版链接:http://www.discoverycorpsinc.com/interviewing-data-miners-and-m/数据挖掘领域是一个独特的行业,通常的招聘面试方法可能不大适用于本行业的特点。在招聘一个合格的数据挖掘工程师时,公司一般关注以下三个方面:转载 2012-10-06 18:04:03 · 1869 阅读 · 0 评论 -
一些技术杂题
1. 6 个士兵晚上巡逻,每人配备一把枪,如果 6 个人完全随机取一把枪,至少有一个人取到自己的枪的概率是多少?266/720。容斥原理。原创 2012-10-09 10:42:29 · 1011 阅读 · 0 评论 -
c++面试题-vector手写实现版本
#include#include#include#include#includeusing namespace std;template class myVector{ private: T* data; int len; int size; public: myVector() {原创 2012-09-19 11:26:43 · 3437 阅读 · 0 评论 -
数组元素乘法结果
#include using namespace std;#define MAX 22int result[MAX];void findNum(int a[], int len){ int b[len], sum = 1; for(int i=0; i<len; ++i) { b[i] = sum; sum *= a[i];原创 2012-09-19 16:07:56 · 1438 阅读 · 0 评论 -
概率生成器-算法
1.假设我有个{0,1}生成器,生成0的概率为p,生成1的概率为q,如何通过此发生器获得一个均为1/2的{0,1}生成器呢?【答】思路:寻找两个等概率事件。易知连续投掷两次获得01或者10的概率均为p(1-p) =Y,因此如果我们连续生成两个数,如果获得00或者11概率为U=p^2+(1-p)^2,则继续再获取两个数,直到获取到10或者01为止。概率为(1+U+U^2+U^3+...)*Y 求转载 2012-09-19 15:57:06 · 1579 阅读 · 0 评论 -
string类自己实现的版本
#include#includeusing namespace std;//templateclass myString{private: char *str;public: myString() { str = new char[1]; str[0] = '\0'; } myString(const char* pStr)原创 2012-09-18 10:47:03 · 972 阅读 · 1 评论 -
zz国考130+经验分享
毕业三年了,平时都潜水,看了nickyday的帖子觉得太惭愧了,从来没分享过经验。我邮像我这样考了好几年公务员的应该不多,现在反正上班也基本没啥事了,谈下经验吧。师弟师妹有这方面需要的,可以站内我。 首先报下成绩,小硕,10年毕业时第一次参加国考,110+,当时好像是差两分没进面试,然后就年年考....分数上看是一直在进步,120,120+,130+,连着进了三年面试,转载 2013-04-14 02:32:18 · 3098 阅读 · 0 评论 -
字符串的全排列和组合算法
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *转载 2012-05-03 22:04:16 · 1501 阅读 · 0 评论 -
[classic aglo]-quick sort 纯净版
#include#include#include//using namespace std;int partition(int data[], int begin, int end){ int key = data[begin]; while(begin < end) { while(data[end]>=key && begi原创 2012-08-17 11:05:15 · 3315 阅读 · 0 评论 -
面试 智力题
1.你有5瓶药,每个药丸重10克,只有一瓶受到污染的药丸重量发生了变化,每个药丸重9克。给你一个天平,你怎样一次就能测出哪一瓶是受到污染的药呢?答案:调试好天平后,天平左右盘各放两瓶,有下列情况:1:天平平衡,则余下那瓶的是受污染的药;2:天平左倾,则目标瓶在右盘,现在同时从左右盘拿下一瓶,观察到:若天平恢复平衡,则目标瓶就是右盘拿下的那瓶,若天平依旧左倾则目标就是右盘余下的那瓶。转载 2012-09-05 10:20:09 · 8533 阅读 · 0 评论 -
二叉搜索树删除节点完美版
经测试,现在无bug,欢迎指点。//main.cpp/////////////////////////////////////////////////////题目描述:删除给定二叉排序树的给定节点////作者:k_eckel(韦福如)//时间:2005-09-30//////////////////////////////////////////原创 2012-08-24 13:15:38 · 1257 阅读 · 0 评论 -
字符串的排列组合问题
转自: http://blog.youkuaiyun.com/wuzhekai1985问题1 :输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 思路:这是个递归求解的问题。递归算法有四个特性:(1)必须有可达到的终止条件,否则程序将陷入死循环;(2)子问题在规模上比原问题转载 2012-05-04 09:55:17 · 956 阅读 · 0 评论 -
设计包含min函数的栈,要求函数min、push以及pop的时间复杂度都是O(1)
class Stack{private: struct Link { int data; Link* next; Link(const int& dat, Link* nxt):data(dat), next(nxt){} ~Link(){} } *pHead; Link *pMinimum;public: Stack():pHead(NULL), pMinimum转载 2012-05-04 14:55:09 · 1185 阅读 · 0 评论 -
海量数据处理面试题
转自: http://blog.youkuaiyun.com/v_july_v/article/details/66859621. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方转载 2012-05-12 10:33:30 · 743 阅读 · 0 评论 -
把二元查找树转变成排序的双向链表
题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 比如将二元查找树 10 / \ 6...转载 2012-05-10 20:47:05 · 675 阅读 · 0 评论 -
中序,后序非递归遍历
//后序: template void postOrder(TreeNode *root) { stack*> st; TreeNode *p = root; TreeNode *pre = NULL;//pre表示最近一次访问的结点 while(p || st.size()!=0) { //沿着左孩子方向走到最左下 。 whi原创 2012-08-17 16:20:35 · 1249 阅读 · 0 评论 -
atoi()和itoa()的标准源码实现
microsoft's versionchar* _itoa(int value, char* string, int radix){ char tmp[33]; char* tp = tmp; int i; unsigned v; int sign; char* sp; if (radix > 36 || radix <= 1) { __set_er转载 2012-08-18 00:07:41 · 7755 阅读 · 0 评论 -
[classic algo]-heap sort 堆排序
#include using namespace std;#define MAXSIZE 10000int data[MAXSIZE];int heapSize = 0;void heapShift(int i) { int left = i*2+1; int right = i*2+2; int largest = i; if(left < heapS原创 2012-08-17 20:22:42 · 824 阅读 · 0 评论 -
二分查找变形
二分查找变形,如{3,5,7,9,11,13,1};这样的数组,这里所说的循环有序数组,就是把一个有序数组从某个(未知)位置处截为两段,把前一段放到后一段的后面(数组里的元素还是有序的,只不过最小值不一定是数组的第一个元素,而可能是其中的任何一项,从它开始逐项递增,到数组的最后一个元素时再回到第一个元素)。显然传统的二分法已经无法直接使用了,但考虑一下,如果已经知道分界点位置,那问题就简单多了转载 2012-08-18 00:43:38 · 1380 阅读 · 0 评论 -
并查集
等价关系与等价类从数学上看,等价类是一个对象(或成员)的集合,在此集合中的所有对象应满足等价关系。若用符号"≡"表示集合上的等价关系,那么对于该集合中的任意对象x,y, z,下列性质成立:1、自反性:x ≡ x2、对称性:若 x ≡ y 则 y ≡ x3、传递性:若 x ≡ y 且 y ≡ z 则 x ≡ z因此,等价关系是集合上的一个自反、对称、传递的关系。通过金属线转载 2012-08-17 20:34:55 · 1001 阅读 · 0 评论 -
判断两棵二叉树是否相等
在这里要对一种情况进行说明当root1的左子树与root2的左子树相同,root1的右子树与root2的右子树相同时,这两颗二叉树相同。当root1的左子树与root2的右子树相同,root1的右子树与root2的左子树相同时,这两颗二叉树同样相同。以下是实现代码bool IsBSTEqual(BNode* root1,BNode* root2){ if (root1转载 2012-05-02 21:13:02 · 12083 阅读 · 1 评论