??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产一区二区 ,久久久久国产精品熟女影院,日韩人妻无码一区二区三区久久99http://www.shnenglu.com/zhengtao63/zh-cnWed, 07 May 2025 20:40:31 GMTWed, 07 May 2025 20:40:31 GMT60~程技术面试的五大要点QztQ?/title><link>http://www.shnenglu.com/zhengtao63/archive/2011/10/15/158339.html</link><dc:creator>zhengtao</dc:creator><author>zhengtao</author><pubDate>Sat, 15 Oct 2011 02:44:00 GMT</pubDate><guid>http://www.shnenglu.com/zhengtao63/archive/2011/10/15/158339.html</guid><wfw:comment>http://www.shnenglu.com/zhengtao63/comments/158339.html</wfw:comment><comments>http://www.shnenglu.com/zhengtao63/archive/2011/10/15/158339.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/zhengtao63/comments/commentRss/158339.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/zhengtao63/services/trackbacks/158339.html</trackback:ping><description><![CDATA[<span id="t1rtf7p" class="Apple-style-span" style="font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; background-color: #ffffff; "><div id="jh1bfrf" class="entry fix" style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 15px; padding-bottom: 5px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; clear: both; line-height: 1.6em; display: block; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; ">?/ 何v?/strong></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">扎实的基知识、高质量的代码、清晰的思\、优化代码的能力、优U的综合能力是~程技术面试的五大要点?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">扑ַ作一直是一个热门话题。要x到心仪的工作Q难免需要经q多轮面试。编E面试是E序员面试过E中最为重要的一个环节。如果能在编E面试的环节充分展示自己的能力,那么拿到中意的Offer是水到渠成的事情?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">我先后在Ƨ特克、微软和思科{公怓Q软g工程师,多次接受他h的面试,同时也面试过很多人。ȝ面试与被面试的经验,我发现尽面试官的背景、性格各不相同Q但都关注应聘者五U素质:扎实的基知识Q能写高质量的代码;分析问题时思\清晰Q能优化旉效率和空间效率;具备包括学习能力、沟通能力、发散思维能力{在内的l合能力?span id="more-8435" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; color: #888888; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; ">扎实的基知识</strong></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">扎实的基本功是成ZUE序员的前提条gQ因此面试官首要x应聘者的素质x否具备扎实的基础。通常基本功在~程面试环节体现在两个方面:一是编E语aQ二是数据结构和法?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">每个E序员至要熟练掌握1~2门编E语a。面试官从应聘者在面试q程中写的代码以及跟q的提问中,能看Z~程语言掌握的熟l程度。以大部分公叔R试要求的C++ZQ如果函数需要传入一个指针,面试官可能会问是否需要ؓ该指针加上constQ把const加在指针不同的位|有什么区别;如果写的函数需要传入的参数是一个复杂类型的实例Q面试官可能会问传入值参数或者引用参数有什么区别,什么时候需要ؓ传入的引用参数加上const?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">数据l构通常是编E面试过E中考查的重炏V在参加面试之前Q应聘者需要熟l掌握链表、树、栈、队列以及哈希表{数据结构以及它们的操作。如果我们留心各大公司的面试题,׃发现链表和二叉树相关的问题是很多面试官喜Ƣ问的问题。这斚w的问题看似简单,但真正掌握也很不ҎQ特别适合在短短几十分钟的面试旉内检验应聘者的基本功。如果应聘者事先对链表的插入和删除l点了如指掌Q对二叉树的各种遍历Ҏ的@环和递归写法都烂熟于胸,那么真正C面试时也游刃有余了?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">大部分公司对法的要求都只是考查查找和排序。应聘者可以在了解各种查找和排序算法的基础上,重点掌握二分查找、归q排序和快速排序,因ؓ很多面试题都只是q些法的变体而已。比如把排序好的数组的前面若q个数字Ud数组的后面,然后问怎样在这个数l之中找到最的数字。这道题其本质就是考查二分查找。少数对法很重视的公司比如h或者百度,q会要求应聘者熟l掌握动态规划和贪婪法。如果对q种cd的公司感兴趣Q那么应聘者在参加面试之前应该加强对相关法题目的练习?strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "></strong></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; color: #888888; ">高质量的代码</span></strong></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">只有注重质量的程序员Q才能写出鲁稳定的大型软g。在面试q程中,面试官M格外x边界条g、特D输入等看似l枝末节但实质至关重要的地方Q以此来分析应聘者是否注重代码质量。很多时候,面试官发现应聘者写出来的代码只能完成最基本的功能,一旦输入特D的边界条g参数׃错误癑և甚至E序崩溃?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">举个很多应聘者都被问q的一个问题:写一个函敎ͼ把字W串转化成整数。这道题看似很简单,l大部分计算Z业的毕业生都能用十行以内的代码实现最基本的功能。可是在实际面试q程中,十个应聘者中只有一个h能通过q道题的面试Q因为绝大部分应聘者不能全面考虑到各U特D输入,比如输入的字W串含中有非数字的符受在字符串的开头有正负受字W串中有正负号但其位|不是在字符串的开头?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">除此之外Q面试官q希望应聘者能考虑的边界条件包?147483647Q?×7FFFFFFFQint能表C的最大正整数Q和-2147483648Q?×80000000Qint能表C的最负整数Q?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">除了边界条g和特D输入考虑不之外Q面试官q有一个不能容忍的错误是E序崩溃。面试时很多应聘者都会忘记对I指针做Ҏ处理而导致程序崩溃。如果面试时遇到链表、二叉树相关的题目,应聘者一定要特别心。因两种题目对应的代码里通常会有大量的指针操作,如果考虑不周刎ͼ有可能对空指针q行操作而ɽE序崩溃?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">比如q样一道题Q输入一个链表的头指针和一个无W号整数kQ输链表的倒数Wk个结炏V这个题目很多h都能惛_用两个指针来解决Q第一个指针先在链表上Udk-1步,同时让第一个指针和W二个指针在链表上移动。当W一个指针移动到指针时Q第二个指针指向的就是倒数Wk个结炏V然而不是每个应聘者都能根据正思\写出完整的代码。不应聘者会忽略两种可能Q一是输入的链表头指针有可能是空指针Q二是链表上l点的数目有可能于k个。忽略这两点的代码都存在崩溃的可能,从而很难获得面试官的青睐?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">要想写出鲁棒的高质量代码Q需要在动手写代码之前想好测试用例。在写代码之前,先要惛_各种边界条g和特D输入作为测试用例。当代码写好之后Q自己在心里用之前想好的试用例来检验自己写出的代码Q这样就能在面试官之前发现ƈ解决问题。以求链表的倒数Wk个结点ؓ例,如果事先惛_了输入头指针为空指针和链表上的结ҎL于kq两个测试用例,q且在写好代码之后在心里模拟代码的运行过E,保能够通过q两个测试用例的试Q那么这轮面试必然是能够通过的?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; color: #888888; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; ">清晰的思\</strong></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">只有思\清晰Q应聘者才有可能在面试q程中解军_杂的问题。有旉试官会有意出一些比较复杂的问题Q以考查能否在短旉内Ş成清晰的思\q解决问题。对于确实很复杂的问题,面试官甚至不期待应聘者能在面试不C个小时的旉里给出完整的{案Q他更看重的可能q是应聘者是否有清晰的思\。面试官通常不会喜欢应聘者在没有形成清晰思\之前p率地开始写代码Q结果写出来的代码容易逻辑混ؕ、错误百出?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">应聘者可以用几个单的Ҏ帮助自己形成清晰的思\?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">首先是D几个单的具体例子让自q解问题。当一眼看不出问题中隐藏的规律Ӟ可以试着?~2个具体的例子模拟操作的过E,q样说不定就能通过具体的例子找到抽象的规律?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">其次可以试着用图形表C抽象的数据l构。像分析与链表、二叉树相关的题目时Q可以画出它们的l构图来化题目?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">最后可以试着把复杂的问题分解成若q个单的子问题,再一一解决。很多基于递归的思\Q包括分L和动态规划法Q都是把复杂的问题分解成一个或者多个简单的子问题?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">比如把二叉搜索树转化排序的双向链表这个问题就很复杂。碰到这个问题,不妨先画?~2个具体的二叉搜烦树及其对应的排序双向链表Q直观地感受二叉搜烦树和排序的双向链表有哪些联系。如果一下子找不{换的规律Q可以把整个二叉树看Z部分Q根l点、左子树和右子树。当递归地把转换左右子树q两个子问题解决之后Q再把{换左叛_树得到的链表和根l点链接hQ整个问题也p决了?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; color: #888888; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; ">优化代码的能?/strong></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">优秀的程序员Ҏ间和I间的消耗锱铢必较,他们很有Ȁ情不断优化自q代码。当面试官出的题目有多种解法Ӟ通常他会期待应聘者最l能够找到最优解。这p求应聘者在面试官提C有更好的解法Ӟ不能攑ּ思考,而应该努力寻扑֜旉消耗或者空间消耗上可以优化的地斏V?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">要想优化旉或者空间效率,首先要知道如何分析效率。即使是同一个算法,用不同方法实现的效率可能也会大不相同Q要能够分析出算法及其代码实现的效率。例如求斐L那契数列Q很多h喜欢用递归公式f(n)=f(n-1)+f(n-2)求解。如果分析它的递归调用树,׃发现有大量的计算是重复的Q时间效率是以n的指数增加。但如果先求f(1)、f(2)Q再Ҏf(1)和f(2)求出f(3)Q接下来Ҏf(2)、f(3)求出f(4)Qƈ以此cL用一个@环求出f(n)Q这U计方法的旉效率只有O(n)Q比前面递归的方法要好很多?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">要想优化代码的效率,q要熟知各种数据l构的优~点Qƈ能选择合适的数据l构解决问题。我们在数组中根据下标可以用O(1)完成查找。数l的q个特征可以用来实现单的哈希表解军_多面试题Q比如在字符串中扑ֈW一个只出现一ơ的字符。再比如Z扑ևn个数字中最的k个数Q需要一个数据容器来存储k个数字。在q个数据容器中,我们希望能够快速地扑ֈ最大值ƈ且能快速地替换其中的数字。经q权衡,我们发现二叉树比如最大堆或者红黑树都是实现q个数据容器的理想选择?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">要想优化代码的效率,也要熟练掌握常用的算法。面试中最常用的算法是查找和排序。如果从头到N序扫描一个数l,需要O(n)旉才能完成查找操作。但如果数组是排序的Q应用二分查扄法就能把旉复杂度降低到O(logn)。排序算法除了能够给数组排序之外Q还能用来解军_他问题。比如快速排序算法中的Partition函数能够用来在n个数里查扄k大的数字Q从而可以用O(n)的时间在数组中找到出现次数超q数l长度一半的数字。如果面试题是一个求最大值或者最值的题目Q则可以试用动态规划法或者贪婪算法,比如用动态规划法求出数组中连l子数组的最大和?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; color: #888888; ">优秀的综合能?/span></strong></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">在面试过E中Q应聘者除了展Cq~程能力和技术功底之外,q需要展Cq软技能,诸如沟通能力和学习能力?strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; ">随着软gpȝ的规模越来越大,软g开发已l告别了单打独斗的年代,E序员与他h的沟通变得越来越重要?/strong>在面试过E中Q面试官会观察应聘者在介绍目l验或者算法思\时是否观Ҏ、逻辑清晰Qƈ以此判断他沟通能力的强弱。另外,面试官也会从应聘者说话的态和语气来判断他是否有团队合作的意识。通常面试官不会喜Ƣ高傲或者轻视合作者的人?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">IT行业知识更新很快Q因此程序员只有具备很好的学习能力才能跟上知识更替的步伐。通常面试官有两种办法考查应聘者的学习能力。第一U方法是询问应聘者最q在看什么书、从中学C哪些新技术。面试官可以用这个问题了解应聘者的学习愿望和学习能力。第二种Ҏ是抛Z个新概念Q接下来他会观察应聘者能不能在较短时间内理解q个新概念ƈ解决相关的问题。比如面试官要求应聘者计第1500个丑数。很多h都没有听说过丑数q个概念。这旉试官׃观察应聘者面对丑数这个新概念Q能不能l过提问、思考、再提问的过E,最l找Z数的规律从而找到解x案?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">知识q移能力是一U特D的学习能力。如果我们能够把已经掌握的知识迁Ud其他领域Q那么学习新技术或者解x问题׃变得Ҏ。面试官l常会先问一个简单的问题Q再问一个很复杂但和前面的简单问题相关的问题。这旉试官期待应聘者能够从单问题中得到启示Q从而找到解军_杂问题的H门。比如面试官先要求应聘者写一个函数求斐L那契数列Q再问一个青蛙蟩台阶的问题:一只青蛙一ơ可以蟩?U台Ӟ也可以蟩?U台Ӟ请问q只青蛙跳上nU的台阶d有多种xQ应聘者如果具有较强的知识q移能力Q就能分析出青蛙跛_阉题实质上只是斐L那契数列的一个应用?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">q有不少面试官喜Ƣ考查应聘者的抽象建模能力和发散思维能力。面试官从日常生zM提炼出问题,比如如何判断5张扑克牌是不是顺子,考查应聘者能不能把问题抽象出来用合理的数据结构表C,q找到其中的规律解决q个问题。面试官也可以限制应聘者不得用常规方法,q要求应聘者具备创新精,能够打开思\从多角度d析、解决问题。比如面试官要求应聘者不用加减乘除四则运实C个整数的加法。此旉试官期待应聘者能够打开思\Q用位运实现整数的加法?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; color: #888888; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; ">结</strong></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">我们可以用下图来ȝ出应聘者需要具备的素质?/p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; text-align: center; "><a style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; color: #0088cc; text-decoration: none; "><img class="aligncenter size-full wp-image-8440" title="未命名_副本" src="http://www.programmer.com.cn/wp-content/uploads/2011/10/%E6%9C%AA%E5%91%BD%E5%90%8D_%E5%89%AF%E6%9C%AC1.jpg" alt="未命名_副本" width="300" height="167" style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; display: block; " /></a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; text-indent: 28px; ">从上囑֏以看出,应聘者在面试之前需要做_备,对编E语a、数据结构和法{基知识有全面的了解。面试时如果到单的问题应聘者一定要注重l节写出完整、鲁的代码。如果碰到复杂的问题应聘者可以通过d、D具体例子分析和分解复杂问题等Ҏ先理清思\再动手编E。除此之外,应聘者还应该不断优化旉效率和空间效率,力求扑ֈ最优的解法。在面试q程中,应聘者还应该d提问弄清楚题目的要求Q表现自q沟通能力。当面试官前后问的两个问题有相关性时Q尽量把解决前面问题的思\q移到后面的问题中去Q展Cp好的学习能力。如果能做到q么几点Q那么应聘者顺利通过面试获得心A的职位将是瓜熟蒂落的事情?/p></div></span><img src ="http://www.shnenglu.com/zhengtao63/aggbug/158339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/zhengtao63/" target="_blank">zhengtao</a> 2011-10-15 10:44 <a href="http://www.shnenglu.com/zhengtao63/archive/2011/10/15/158339.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ 重蝲cd转换q算W?/title><link>http://www.shnenglu.com/zhengtao63/archive/2011/10/12/158148.html</link><dc:creator>zhengtao</dc:creator><author>zhengtao</author><pubDate>Wed, 12 Oct 2011 09:54:00 GMT</pubDate><guid>http://www.shnenglu.com/zhengtao63/archive/2011/10/12/158148.html</guid><wfw:comment>http://www.shnenglu.com/zhengtao63/comments/158148.html</wfw:comment><comments>http://www.shnenglu.com/zhengtao63/archive/2011/10/12/158148.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/zhengtao63/comments/commentRss/158148.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/zhengtao63/services/trackbacks/158148.html</trackback:ping><description><![CDATA[<table style="width: 100%; table-layout: fixed"> <tbody> <tr> <td> <div class="p9jdvdr" id="blog_text" class="cnt"> <p><span style="font-size: 10pt"><em>在读《Accelerated c++》时Q对" while(cin>>x) " 感到疑惑?N cin 会变为NULL么?不然要死循环了。猜?io 应该重蝲?bool 函数?特{载这博文?/em></span><br /><br />C++的运符重蝲功能真的很强大,除了可以重蝲常规q算W(比如Q? - * / > < = etc. Q也可以重蝲cd转换q算W(比如, <em><strong>(int)     (bool)    (char *)</strong> </em>etc. Q?L下面的例子,cStudent重蝲了运符 <em><strong>(bool)</strong> .</em></p> <p> </p> <p>#include <iostream><br />using namespace std;</p> <p>class Student<br />{<br />public:<br />Student(bool _isok = true) : isok(_isok){}<br /><br /><font color="#ff0000">operator bool()<br />{<br />   return isok;<br />}<br /></font><br />bool isok;<br /><br />~Student(){}<br />};</p> <p>int main(int argc, char *argv[])<br />{<br /><br />Student a(true), b(false);<br /><br />cout<<<font color="#ff0000">((bool)a)</font><<endl;<br />cout<<<font color="#ff0000">((bool)b)</font><<endl;<br /><br /><font color="#ff0000">if( a )<br /></font>   cout<<"a is ok"<<endl;<br /><font color="#ff0000">if( b )<br /></font>   cout<<"b is ok"<<endl;<br /><br />return 0;<br />}</p> <p>q行l果Q?/p> <p>1<br />0<br />a is ok</p> <p> </p> <p>注意看那两个if语句Q?l果中只出现“a is ok”Q说明if语句条g表达式隐含地q行了类型{换(转换成bool型)Q这P我们p理解Qؓ什么可以写q样的语句:</p> <p>int n;</p> <p>if ( cin>>n )</p> <p>{</p> <p>    ......</p> <p>}</p> <p><u>可以推断Qio类也重载了bool型{换运符?/u></p></div></td></tr></tbody></table><img src ="http://www.shnenglu.com/zhengtao63/aggbug/158148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/zhengtao63/" target="_blank">zhengtao</a> 2011-10-12 17:54 <a href="http://www.shnenglu.com/zhengtao63/archive/2011/10/12/158148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.0s2yxuj0.net.cn" target="_blank">Ʒ۲ӰԺþ</a>| <a href="http://www.vzpw.cn" target="_blank">ɫۺϾþ88ɫۺ</a>| <a href="http://www.fzmnls.cn" target="_blank">99þùۺϾƷӰԺ </a>| <a href="http://www.hhh328.cn" target="_blank">þþþþҹƷƷ</a>| <a href="http://www.eaglehr.com.cn" target="_blank">þþþþùaѹۿ</a>| <a href="http://www.cdz8.cn" target="_blank">ھƷ˾þþþ</a>| <a href="http://www.0352quan.cn" target="_blank">˹ھƷþþþһ</a>| <a href="http://www.haobanben.cn" target="_blank">ľþþþר</a>| <a href="http://www.dlucai.cn" target="_blank">һaƬþëƬëƬ</a>| <a href="http://www.6nz.com.cn" target="_blank">þˬˬƬAV</a>| <a href="http://www.dogff.cn" target="_blank">þAAAƬ69</a>| <a href="http://www.sxjax.cn" target="_blank">þþþþϸApp</a>| <a href="http://www.force-equipment.com.cn" target="_blank">ۺ޾þһƷ</a>| <a href="http://www.ranhuman.cn" target="_blank">þþƷŷպƷ</a>| <a href="http://www.yywhqy.cn" target="_blank">ŷ츾BBBþþ</a>| <a href="http://www.a79wvh.cn" target="_blank">ƷþþþĻһ</a>| <a href="http://www.pgfg.net.cn" target="_blank">ľƷþþþ޲</a>| <a href="http://www.viparadise.com.cn" target="_blank">˾ھƷþþþ</a>| <a href="http://www.s360.com.cn" target="_blank">97þùۺϾƷŮ</a>| <a href="http://www.six-dream.cn" target="_blank">Ʒþþþ龫Ʒ</a>| <a href="http://www.sowudi.com.cn" target="_blank">޾Ʒtvþþþþþþ</a>| <a href="http://www.huaigutang.cn" target="_blank">þùƷһ</a>| <a href="http://www.ktqcc.cn" target="_blank">þСƵ</a>| <a href="http://www.hygaiye.cn" target="_blank">þþƷһ</a>| <a href="http://www.js157.cn" target="_blank">þۺ97ɫֱ</a>| <a href="http://www.fri-day.cn" target="_blank">ƷŮͬһþ</a>| <a href="http://www.fa808.cn" target="_blank">þ99Ʒþ99ý</a>| <a href="http://www.duteng888.com.cn" target="_blank">Ʒþþþþþapp </a>| <a href="http://www.fanerge.cn" target="_blank">þþۺ㽶ۺ</a>| <a href="http://www.dmqdgs.cn" target="_blank">97þù޾Ʒ </a>| <a href="http://www.yixue114.cn" target="_blank">ձƬҹþ</a>| <a href="http://www.hotfan.cn" target="_blank">޺ݺۺϾþѿ</a>| <a href="http://www.51maicha.cn" target="_blank">þAVĻ</a>| <a href="http://www.wwmw.com.cn" target="_blank">һɫþ88ۺպƷ</a>| <a href="http://www.2tou.cn" target="_blank">þһ99</a>| <a href="http://www.czcsbsb.com.cn" target="_blank">ŷƷһþ</a>| <a href="http://www.giep.cn" target="_blank">þ</a>| <a href="http://www.jandown.cn" target="_blank">һõþۺϺݺAV </a>| <a href="http://www.oqnn.cn" target="_blank">ѹۿþþƵ</a>| <a href="http://www.cn987.cn" target="_blank">Ʒһþ㽶߿</a>| <a href="http://www.sd167.cn" target="_blank">þþþAVƬ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>