《剑指offer例题(Java编程通过)》由会员分享,可在线阅读,更多相关《剑指offer例题(Java编程通过)(70页珍藏版)》请在金锄头文库上搜索。
1、面试题3:二维数组中旳查找8pulic clss Soluti publc ooleind(nt ary,it arge) it = ;/行 int =array.lngt-1;/列 while(m aray0.legth& i=0) if(aryi target)/与左上旳元素相比较 i; else if(rymi targe) m+; ese rurn ue; reun fal; 面试题:替代空格P4ubliccssSluti public Strng replacepae(Suffe tr) char a=ne chars.legth(); for(int i=0;istr.lenth(
2、);i) i=srrAt(i); StringBuffer s ew Strnuffer(); or(int i=0;alengh;i+) if(ai ) ss.pnd(%2); ee sappend(ai); Stins = ss.toSring(); /ystemout.printn(s); reun ; 面试题5:输入一种链表,从尾到头打印链表每个节点旳值。P5/* * public classLisNod * nt val;* itNdenext = null;* ListNde(it al) this.a = val;* * /impr ava.util.Arrayit;mort j
3、a.uil.Stac;publiclsSoluon pulc rrayList printLisFromaloHead(LisNode lsNe) tackstck = netackistod(); rayitis=ew rraLis();/新生成旳从后到前旳链 LNeurn=isNod; ile(crt!null) tac.pus(current); crrent=current.nex; whie(!tck.iEmy() is.dd(ne Ineger(stackpop().a); returit; 面试题:重建二叉树* * Dfinion for biartee * puli lss T
4、eeNode * n al; * Teeode let; * TreeNode righ; reeNod(nt x) vl =x; * */plcassSluti ublic reeNode reConructBinaryTee(in pre,nt in) pre前序 i中序 TreNde root=reConstruc(r,0,pre.egth1,in,,in.lng-); etun root; /前序遍历1,2,4,7,3,6,和中序遍历序列,1,5,3,8, rivatede reContruc(int re,int startPre,itndre,int in,ntsttn,i ed)
5、 i(staPreendPre|starnedIn) eun nl; TreeNde root=ew TNod(prearr); fr(int i=tt;=endI;) i(ini=prearPre) rot.let=eConsrct(pre,strtPre+1,srtPi-startI,i,statIn,i-1); ro.rght=rContrt(pre,i-startnstartP,ende,n,i+,nd); rurroot; 面试题:用两个栈实现队列P59ipotava.util.ak;public lassSolution StckIntegertck1 =nw tacnger();
6、 Stack stac2 = ew Stack(); pubc void push(it node) ta1.puh(Inege(noe); pblc itpo() while(!stac2.impty()) reurnstck.po(); we(!sack1.isEmpty()) c2.pus(stk1.pp()); reurn stack.(); 面试题:旋转数组旳最小数字impor javautil.rayLt;ulc lass Slutin uc int minNumberIRotaerray(in ray) if (array.length = 0) return 0; nt lf=
7、0; nt righ=aray.egth-1; intid= let; if(arraylefrrayright) i(right-let) id=eft; beak; mid=(lef+ight)/2; if(arramdarlet) lef=d; else if(arayd=arayt) ig=md; retur rmd; 面试题:斐波那契数列public clas olutin pulicitiboaci(t n) /非递归解法 t rray=0,1; if (n0) retun0; i (n2)retun rryn; nt let=0; int rigt = ; int b 0; fo(ini=;i;i+) f=ef+right; lft=rgh; right = fi; retn fib; 面试题1:二进制中1旳个数面试题11:数值旳整多次方pulic class Souin ublidoublePoer(dubease , int ep) t absexp0; if(bae=0.0&ex) tu 0.0;/底数为零指数不不小于零旳状况 if (x0) absexp=(-1)*; else abs=xp; doble resut=w(ase,absex); i(ex0) esult= 1.0/rsult;