唯品会2015技术岗笔试真题与网友讨论.pdfVIP

  • 0
  • 0
  • 约1.71千字
  • 约 3页
  • 2026-01-31 发布于北京
  • 举报

唯品会2015技术岗笔试真题与网友讨论.pdf

2015唯品会技术岗笔试(含)

2015-08-07

1、现有n个小于100000的整数,写一个算法将这些数从小到大排序,要求时间

复杂度O(n),空间复杂度O(1)。

2、有一个整数数组,请用你熟悉的编程语言写一个算法将这个数组变成奇数在

前偶数在后。并给出你的算法的空间复杂度和时间复杂度。

3、有两个目录a、b的绝对路径(字符串),用你熟悉的语言实现一个算法,求出

b相对于a的相对路径。

4、仓库中有100颗金豆,拣货员在拣货的时候无意中把一颗外观一摸一样但重

量不同的假豆掉了进去。仓库主管发现后给了他一架天平,并说如果他能通过最

多两次称量得出假豆比真豆重还是轻,就不对他进行惩罚。你如果你是拣货员,

你能让自己免于惩罚吗?

网友A:个人想法,有错请。

第一题:快排。

第二题:从中间开始往两边扫描。

第三题:个人觉得应该是字符串匹配算法。

第四题:不会,以前见过多种类似的题,但是忘了。

网友B:

1、快排的时间复杂度是nlog2(n),我觉得题目可能记得有问题。

2、从中间肯定不对,应该和快排一样,从两边往中间扫。

3、类似于最小父节点的查找,但更简单,因为A和B的深度是已知的。可以直

接看A和B开头目录有多少一样的。然后再在B到父节点的相对深度前加一堆

上线目录(../)。

4、第一次:1-33VS34-66

1.1平1-35VS67-101--〉67-101的轻重,

就是假球的轻重

1.2左重1-33VS67-99--〉左重:则假重;

左轻,则假轻:平,则假轻

1.3右重同理1.2

网友C:

第一题没研究

第二题

privatestaticvoidcata(int[]s,int[]r)

{if(s.length!=r.length){

thrownewRuntimeException();

}

intjxIdx=0;

intoxIdx=0;

for(inti=0;is.length;i++)

{if(s[i]%2!=0){

r[jxIdx++]=s[i];

}else{

r[s.length-(++oxIdx)]=s[i];

}

}

}

第三题

privatestaticStringgetPath(StringfPath,StringsPath){

Stringret=;

Stringfs[]=fPath.split(\\\\);

Stringss[]=sPath.split(\\\\);

intidx=getSameFolderIdx(fs,ss);

for(inti=idx;iss.length;i++)

{ret+=../;

}

for(inti=idx;ifs.length;i++)

{ret+=fs[i]+/;

}

returnret;

}

privatestaticintgetSameFolderIdx(Stringfs[],Stringss[])

{inti=0;

for(;ifs.length;i++){

if(i==ss.length||!fs[i].equals(ss[i]))

{break;

}

}

returni;

}

于CSDN

文档评论(0)

1亿VIP精品文档

相关文档