欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    (全)面试 软件开发工程师 算法题 含答案.docx

    • 资源ID:489768       资源大小:25.08KB        全文页数:22页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (全)面试 软件开发工程师 算法题 含答案.docx

    面试软件开发工程师算法题含答案1.从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序:1.张三282,李四,353,张三284,王五355,张三286,李四357,赵六,288,田七,35程序代码如下(答题要博得用人单位的喜欢,包名用该公司,面试前就提前查好该公司的网址,如果查不到,现场问也是可以的。还要加上实现思路的注释):packagecom.huawei.interview;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.UtiLComparator;importjava.util.HashMap;importjava.UtiLIterator;importjava.util.Map;importjava.util.TreeSet;publicclassGetNameTest*paramargsVpublicstaticvoidmain(Stringargs)/InputStreamips=GetNameTest.class.getResourceAsStream(7comhuaweiinterviewinfo.txt");用上一行注释的代码和下一行的代码都可以,因为info.txt与GetNameTeSt类在同一包下面,所以,可以用下面的相对路径形式Mapresults=newHashMapQ;InputStreamips=GetNameTest.class.getResourceAsStream("info.txt");BufferedReaderin=newBufferedReader(newInputStreamReader(ips);Stringline=null;try(while(line=in.readLine()!=null)(dealLine(linezresults);)sortResults(results);catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();)staticclassUser(publicStringname;publicIntegervalue;publicUser(StringnamezIntegervalue)(this.name=name;this.value=value;)©Overridepublicbooleanequals(Objectobj)/TODOAuto-generatedmethodstub下面的代码没有执行,说明往treeset中增加数据时,不会使用到equals73)obooleanresult=super.equals(obj);System.out.println(result);returnresult;)privatestaticvoidsortResults(Mapresults)/TODOAuto-generatedmethodstubTreeSetSortedResuIts=newTreeSet(newComparator()publicintcompare(ObjectolzObjecto2)Useruserl=(User)ol;Useruser2=(User)o2;*如果CompareTo返回结果O,则认为两个对象相等,新的对象不会增加到集合中去*所以,不能直接用下面的代码,否则,那些个数相同的其他姓名就打印不出来。*/returnuserl.value-user2.value;/returnuserl.value<user2.value?-l:userl.value=user2.value?0:1;if(userl.value<user2.value)(return-1;elseif(userl.value>user2.value)return1;pareTo(user2.name););Iteratoriterator=results.keySet().iterator();while(iterator.hasNext()(Stringname=(String)iterator.next();Integervalue=(Integer)results.get(name);if(value>1)sortedResults.add(newUser(name,value);)PrintResults(SortedResuIts);)privatestaticvoidprintResults(TreeSetSortedResuIts)(Iteratoriterator=sortedResults.iterator();while(iterator.hasNext()(Useruser=(User)iterator.next();System.out.println(user.name+user.value);)publicstaticvoiddealLine(StringIinezMapmap)if(!.equals(line.trim()Stringresults=line.split(n,);if(results.length=3)(Stringname=resultsl;Integervalue=(Integer)map.get(name);if(value=null)value=O;map.put(namezvalue+1);)2、写一个Singleton出来。第一种:饱汉模式publicClassSingIeTonprivateSingleTon()实例化放在静态代码块里可提高程序的执行效率,但也可能更占用空间privatefinalstaticSingIeToninstance=newSingleTo();publicstaticSingIeTongetlnstance()returninstance;)第二种:饥汉模式publicClassSingIeTonprivateSingleTon()privatestaticinstance=nullnewSingleTon();publicstaticsynchronizedSingIeTongetInstanceOfif(instace=null)instance=newSingleTon();returninstance;)第三种:用枚举publicenumSingleToONE;)第三:更实际的应用(在什么情况用单例)publicClassSequenceGeneratorf下面是该类自身的业务功能代码privateintcount=0;publicsynchronizedintgetSequence()+count;下面是把该类变成单例的代码privateSequenceGeneratorOOprivatefinalstaticinstance=newSequenceGenerator();publicstaticSingIeTongetlnstance()returninstance;)第四:publicclassMemoryDao(privateHashMapmap=newHashMapO;publicvoidadd(Studentstul)map.put(SequenceGenerator.getInstance().getSequence()zstul);把MemoryDao变成单例)Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。一般Singleton模式通常有几种种形式:第一种形式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getlnstance方法获取对它的引用格嵌而调用其中的方法。publicclassSingletonprivateSingleton()在自己内部定义自己一个实例,是不是很奇怪?注意这是private只供内部调用privateStaticSingIetoninstance=newSingIetonQ;这里提供了一个供外部访问本class的静态方法,可以直接访问publicStaticSingIetongetlnstance()returninstance;)第二种形式:publicclassSingletonprivatestaticSingletoninstance=null;publicstaticsynchronizedSingletongetlnstance()这个方法比上面有所改进,不用每次都进行生成对象,只是第一次使用时生成实例,提高了效率!if(instance=null)instance=newSingleton();returninstance;)其他形式:定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些3 .递归算法题1一个整数,大于O,不用循环和本地变量,按照n,2n,4n,8n的顺序递增,当值大于5000时,把值按照指定顺序输出来。例:n=1237则输出为:1237,2474,4948,9896,9896,4948,2474,1237,提示:写程序时,先致谢按递增方式的代码,写好递增的以后,再增加考虑递减部分。publicstaticvoiddoubleNum(intn)System.outprintln(n);if(n<=5000)doubleNum(*2);System.outprintln(n);)Gaibaota(N)=Gaibaota(N-I)+n4 .递归算法题2第1个人10,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?packagecn.itcast;importjava.util.Date;publicclassAlpublicstaticvoidmain(Stringargs)System.out.println(computeAge(8);)publicstaticintcomputeAge(intn)(讦(n=l)return10;returncomputeAge(n-l)+2;)publicstaticvoidtoBinary(intnzStringBufferresult)(if(n2!=0)toBinary(n2zresult);result.append(n%2);5、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。本人只研究过冒泡排序、选择排序和快速排序,下面是快速排序的代码:publicclassQuicksort* 快速排序* paramStrDate* paramleft* paramrightVpublicvoidquickSort(StringStrDateJntIeftJntright)StringmiddleztempDate;intij;i=Ieft;j=right;middle=strDate(i+j)2;dowhile(strDatei.compareTo(middle)<0&&i<right)i+;找出左边比中间值大的数while(strDatej.compareTo(middle)>0&&j>left)卜;找出右边比中间值小的数if(i<=j)将左边大的数和右边小的数进行替换tempDate=strDatei;strDatei=StrDateQ;StrDatefj=tempDate;i+;j-;)while(i<=j);当两者交错时停止if(i<right)quickSort(strDatej,right)jif(j>eft)quickSort(strDateJeftj);)*paramargsVpublicstaticvoidmain(Stringargs)StringstrVoid=newStnngnll,66,zn22,0"z,55,722n0nz1,32,;Quicksortsort=newQuickSort();Sortquicksort(StrVoidzOzStrVoidJength-I);for(inti=0;i<strVoid.length;i+)System.outprintln(strVoidi+"");

    注意事项

    本文((全)面试 软件开发工程师 算法题 含答案.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开