finding a job

目前找工作的公司及相关进展:

阿里:笔试(因为试卷原因没印出来)->面试*2->offer
微软:笔试->挂
google:机试*2(第一次被判抄袭orz)->面试*1->面试*2->面试*2->挂
腾讯:电面*2->笔试->面试*2->offer
百度:笔试->面试*3->offer
联想:面试(没去面,因为人在上海)
虹软:笔试->面试->等消息
爱奇艺:笔试->面试(两次让去面试都有事情冲突……)
雅虎北研:笔试->面试*3->面试(技术总监)->等消息
网易有道:笔试(因为要先听宣讲会,而宣讲会人满了只能在外面等,于是直接翘了)
hulu:笔试->挂
微策略:笔试->面试*2->终面->offer
创新工厂:笔试->挂

目前已挂:微软、hulu、创新工程、google
目前已翘:联想、爱奇艺、网易有道
目前已拒:阿里、微策略、百度、雅虎北研
目前等消息:虹软(目测皆挂)
目前已签:腾讯
last update:20131220

test for code


class Solution {
public:
struct info
{
int id;
int step;
};
void gen(vector &vstr,vector *c, int id,vector> &res)
{
vector v;
vector> tres;
if(c[id].size()==0)
{
v.push_back(vstr[id]);
res.push_back(v);
return;
}
int i,j;
for(i=0;i> findLadders(string start, string end, unordered_set &dict) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector> res;
vector v;
if(start==end) //start is end
{
v.push_back(start);
res.push_back(v);
return res;
}
unordered_map mp;
unordered_map::iterator iter_m;
unordered_set::iterator iter_s;
vector vstr;
dict.insert(start);
dict.insert(end);
int id=0,i,j,k;
for(iter_s=dict.begin();iter_s!=dict.end();++iter_s)
{
vstr.push_back(*iter_s);
mp.insert(make_pair(*iter_s,id));
id++;
}
int nStart, nEnd;
iter_m = mp.find(start);
nStart = iter_m->second;
iter_m = mp.find(end);
nEnd = iter_m->second;

int len = start.length();
int nTotal = mp.size();
vector *c = new vector [nTotal];
int *step = new int [nTotal];
for(i=0;i q;
q.push(temp);
while(!q.empty())
{
cur=q.front();
q.pop();
if(cur.step>=nMin) continue;
string str = vstr[cur.id];
for(i=0;isecond;
if(step[id]<=cur.step) continue; if(step[id]!=cur.step+1) { temp.id=id; temp.step=cur.step+1; q.push(temp); step[id]=cur.step+1; if(id==nEnd) nMin = cur.step+1; //find end } c[id].push_back(cur.id); } } } if(c[nEnd].size()==0) //no result { delete[]c; delete[]step; return res; } gen(vstr,c,nEnd,res); delete[]c; delete[]step; return res; } };