可以跟我说几个后一幸运2 8 最牛大小算法的算法吗?介绍一些后一幸运2 8 最牛大小算法的算法可以我用下啊

为什么明明面试题比工作遇到的算法已经简单那么多,面试的时候面一下算法还是让很多人义愤填膺呢?
我的图书馆
为什么明明面试题比工作遇到的算法已经简单那么多,面试的时候面一下算法还是让很多人义愤填膺呢?
程序员很贵的好么,随随便便几十万一年好么,妈蛋,这么贵的东西,还不允许我验一下货!!!!!!!!!!!!!!!!难道你买房不验房!!!!!!!!!!难道你买车不验车!!!!!!!!算法是基础中的基础好么!!!!!!!又不是考你难到逆天的题目,快排这种基础中的基础,就算不刷题,不做任何准备也应该在半个小时之内写好好么!!!!!何况,代码风格,思维方式,细心程度这种东西,难道不是写两行code就高下立现的么!!!!一个边界条件不做检查,思路不清,东加一个变量,西加一个函数的程序员,你放心把项目交给他!!!!!就好像一个医生跟你说,虽然我不知道体温计该量哪儿,也不知道你究竟有没有发烧,但是我会写处方,给你开两片退烧药就是了,妈蛋难道你就会放心大胆的去吃么!!!!!对于一个好的程序员,算法题是必要条件好么!!!!不是说能答出算法题就一定是一个好程序员,但连基础的算法都没有掌握的就一定不是好程序员好么!!!!!醒醒吧,骚年!面对一份十几二十万的工作,做一点功课没什么不好,完全值得好么!!!!第一次用咆哮体回答,还是匿了吧。
,人力有时而穷
就说二叉树。我大二学数据结构,大作业的一部分是自己实现一个平衡二叉树,没有任何问题。要是那个时候别人来问我各种细节,毫无压力。然后我现在研二,自那次大作业以后再也没有实现过平衡二叉树。需要使用各种索引的时候都是无论是自己实现还是直接调用库,都不是平衡二叉树。然后现在要是来问我关于平衡二叉树的各种细节,当然我还记得左旋右旋左右旋右左旋,但你要我把所有的指针赋值都准确回答出来,我一定办不到。包括其他很多经典算法,思想我都有印象,细节我只能抱歉。这类知识性的东西不经过长时间多次反复是不会形成长期记忆的。所以才会有临时查的情况产生。而且就算形成了长期记忆,这跟骑自行车这种技能还不一样。只要时间够长,总会忘掉的。我觉得面试者反对的不是问算法,而是单纯地考察这些跟他工作无关的知识。因为他需要花时间去特地准备。而这准备又跟他的工作无关(面试之前的工作)。如果面试官问的算法与面试者的工作相关,他却答不上来,确实可以判断他之前的工作有问题,进而他的能力也许有问题。如果无关,这就成了单纯的应试。我们都知道应试教育在人们心目中是什么样的存在。讨厌什么的就可以理解了吧。当然,面试也和应试教育一样。问的问题也许并不好,但是足够公平。现阶段也没有别的更好的问题可以问。毕竟不能指望面试官先了解应试者的背景再有针对性地提问。再加上现在大家争着找工作的市场情况。所以作为应试者,还是安心准备为上。再说,不管有用没用,知识多了总没有坏处。
,果粉码农,
“工作中用不到这么多算法”就是个错觉。有个算法能漂亮地解决一个问题,我不知道,然后自己倒腾了一个弱弱的方法。嘿,你猜怎么着?能跑!于是我告诉自己,这工作果然用不上什么高深的算法。直到有一天,冒出个竞争对手的产品比我快1000倍。
,还有四个月,真的就要毕业了...
如果以求职者的角度来看,很多求职者的项目与技能和这些面试算法题有出入和差别,所以出现了leetcode,剑指Offer等专门应试面试算法的网站或书籍(个人极度反感,但是现实就是大部分面试就要考这些类型的,你不刷题不看就是容易被毙掉)。所以很多求职者认为自己的技能还没有表现出来,就被面试的算法直接给枪毙掉了,自然有所不服,无论你认为这是多么简单的算法,也许他在工作的时候,根本和这些算法完全不搭边,工作个几年不忘光才怪。那么除了算法以外,如何挖掘出求职者的闪光点,这也是对面试官的一个考验,因为考验算法的不外乎就一个根本目的:他到底聪不聪明。但是算法不好,就一定证明他不聪明,或者工作能力不好了吗?我觉得不一定。这就是要看面试官和面试者的交谈了,面试官去尽力挖掘,面试者去尽力表达推销自己,这就是一个交互的过程。
,色情中带点纯情
先亮明观点:身为程序员,算法知识100%是必要的!本人从事的不是什么高大上的研究工作,跟数据挖掘模式识别自然语言处理云计算大数据blahblah全都不沾边。做过一段时间的J2EE开发,现在主要做基于HTML5的前台开发。看到这儿很多人要说了,不就是个做网页的嘛,做网页还用的上算法?不就是表单验证提交一下?我的回答是绝对用的上!举个例子,很多人在微博上见过tagcloud分析图,展示的是一些关键字的出现频率:&img src="http://p1.zhimg.com/8e/9e/8e9e854af2b1dedb6f1b3ac_m.jpg" data-rawwidth="829" data-rawheight="399" class="origin_image zh-lightbox-thumb" width="829" data-original="http://p1.zhimg.com/8e/9e/8e9e854af2b1dedb6f1b3ac_r.jpg"&这里不谈文本检索这些,只说对已知数据如何安排各个关键字的位置进行渲染。这是个很典型的结合实际的算法问题,在此我用到了wordle算法,这和我们上学时常谈到的那些算法不太一样,但很多核心思路(例如空间换时间)还是相通的。感兴趣的同学可以自行了解。这里不谈文本检索这些,只说对已知数据如何安排各个关键字的位置进行渲染。这是个很典型的结合实际的算法问题,在此我用到了wordle算法,这和我们上学时常谈到的那些算法不太一样,但很多核心思路(例如空间换时间)还是相通的。感兴趣的同学可以自行了解。接下来说说面试的问题。正式工作近9年,一直在coding的第一线,近年来也经常参与对技术人员的面试工作。我和同事们对面试时要不要涉及到算法的问题没有丝毫分歧,仍然是有必要。但算法问题如何问,也是有讲究的。我反对上来就指定一个算法让面试者写答案,例如前面有知友提到的写个快速排序之类的。这样的做法有掉书袋的嫌疑,而且除了证明对方为了面试做过精心准备,其他方面根本考核不出来。自己在面试中经常会问的一个问题:有一组长度为n的对象,每个对象里都有一个startTime和endTime,表示一个时间段。请面试者设计一个小算法,把这些对象中时间段存在重合关系的所有对象列出来。这个问题不难,但一定程度上能考验面试者对算法本身的理解和sense。对这个问题的典型讨论过程是这样的:Candidate:我想可以作个双重循环,把这些对象两两比较me:好的,这显然是个很直观的方法。那么按照你的方法,时间复杂度是多少呢?Candidate:n^2吧me:OK,那么你看看是不是有改进的余地Candidate:……也许我可以先排序,后面还没想好me:根据什么排序呢?Candidate:startTimeme:好,那么我们画个图来看看排好序后这些对象的分布Candidate:……我想到了!blahblahme:好的,那么这个算法的复杂度是多少?你能分析一下吗?Candidate:前面排序用快速排序是n*log(n),后面的过程是线性的,所以总体就是n*log(n)……当然,这是一个比较正面的例子,candidate第一时间解决了问题,但不算完美。在一些提示下发挥和表现了自己对算法、数据结构的认识,比较完整的给出了解。作为interviewer,我就足够满意了。当然也不排除有些candidate上来就能给出很好的解答,那我也没有理由去鸡蛋里挑骨头。作为interviewer,目的是快速的了解对方的能力和水平,而不是为了考住对方
,技能树点歪了走上学魔之路
我说说我的理解,很多时候其实是记不清算法的细枝末节,工作中用到了自然可以查资料查文档,甚至本来就不用知道那些细枝末节,能知道大体怎么用性能如何瓶颈在何处如果要改进可以从什么方面入手就行了。但面试的时候不一样,面试官一个劲追问细节,甚至要提笔现场实现一个详细版本要考虑各种边界情况什么的(我了个去没有文档没有IDE我连String类有没有内置subString这种函数都不记得)难免让人心里没底。举个例子我以前实习的时候遇到过一个问题,可以归结为资源分配,用一个图模型去建模,最后化成一个线性规划模型。我觉得如果要面试,问到这里就差不多了。最多问问迭代求解和直接求解的区别和各自的优点,算法复杂度什么的,理论性强一点还可以问问原对偶问题……至于把梯度下降或者矩阵求逆都要现场写一遍,那就没必要了。当然了,面算法岗位和面开发岗位侧重点也不同,还是要结合具体岗位说的。如果是前面有人提到的PHP工程师或者网页前端,我觉得在实际工作中用到什么高深算法的机会应该很少了,面试时候多问问实际的细枝末节才是更能看出水平的。
,只是……一个好人……
1. 算法很重要2. 算法和数据结构,是当年NOI给我留下最多的财富之一,到现在我还是分分钟完爆大学的所有同学3. 面试带算法,没问题,毕竟都是按万算的工资,算法可以看一个程序猿很多方面的能力,比如代码风格,比如思维,比如边界处理,你是可以工作中用搜索的方式解决,但你不懂的话得来的答案并不一定符合你team的风格或者你公司的业务,没有哪个算法是一层不变的4. 但是面试不应该仅仅停留在算法上,搜索发达的今天,懂得获得信息的能力一样重要5. 最后,算法和数据结构是你通往高阶程序猿的必由之路,不懂这个,你看得懂个屁源码,用开源的东西看不懂代码=慢性自杀,天坑懂不懂
,用互联网精神改造精神病院
什么,工作用到的那破玩意儿也叫算法?我又不是在MSRA工作,现实就是,在大部分程序眼里,只有面试的时候会用到算法,其他时候?algorithm ?wow,what is that
,不想当码农的程序员。
我自己是完全支持面试考算法题的,因为考算法题可以直观地考察一个人的思维过程,编码能力,对数据结构/时间复杂度的理解,和基本功。但在面试的时候考一些刁钻的算法题就太无聊了。譬如Palantir面试的时候考过用矩阵优化的Fib数列log N求第N项,譬如非让你O(n)时间在长度为n的数组求1...n中少了哪k个数,譬如考二叉树前序后序求有多少种中序这类你做过就会不做过很难想出来的题,的确是无聊透顶。因为考这种问题完全不能反映出一个人的能力。现在在创业公司每周都会面试新的程序员。面试的时候一定会考算法题,有关实现的问题,和有关OOP接口设计的问题。有时我会考python中os.path.join的实现 因为可以反映出一个人对conner case有没有一个基本的思考,和一个人对编程语言的基本熟练程度。有时我会考一个DFS灌水法求图中最大连通分量的大小。这能反映出一个人对算法最基本的了解(这要求不高吧),对时间复杂度的认识,对正常逻辑(30行)实现把握的能力。面试最难的问题(其实一点都不过分)我会问这样一道哈希表的问题。给定平面上n个点的坐标,求一条直线y = ax+b,过平面上最多个点。我不知道这道题有没有O(N log N)的解法,但我认为在面试那么短的时间里给一个O(N^2)用哈希表的解法完全没有问题。这一道题考察了对哈希表的理解,对算法的优化,对特殊情况的处理(a = 0, a = infinity),还有代码能力和基本功的体现。** 如果有N log N解法请私信我!!所以面试官真的没有在难为你们。虽然在工作中的逻辑实现甚至很少能用到DFS/BFS,但面试的过程中问这些问题是对一个程序员基本修养的一个考察。不要求在面试的30分钟里把题都做对,但在这个过程中很清楚的能看出来一个程序员在今后的工作中的Debug能力,编码习惯,能否写出可维护的代码,以及和未来同事沟通的能力。最后的最后,程序员的最终目标不是写可以跑的程序,而是在与同事合作中编写出可维护可扩展高效率的代码。这大概就是为什么要考算法题的原因。
,每天混迹在Python|Java|C之间
我觉得是题目太简单导致的问题。面试官觉得,我擦,那么简单都不会。面试者觉得,我擦,没法调试没法查资料我怎么写的对,这种基础题目写错就没分啊。然后不欢而散。面算法的时候,我一般允许对方做不出来,但是至少要给一个解决思路。就算你告诉我你用谷歌一下可以解决也比遇到算法题就放弃反感大惊小怪好得多。如果面社招的,我出的题目一般都是可以用暴力解决掉的搜索题这种难度的 ,我直接允许对方上网查资料,给予对方一台装好开发环境的电脑去解决,甚至是来面试前给一个homework。题目不难,所以有的同学用暴力解决,有的会用简单的搜索,也有的会用A*这类比较漂亮的解答方案。从而区分度还是很好的我觉一直得比较重要的是对问题的解决能力,至于你用什么工具我并不在意,我所提供的工作环境网络都是畅通的,能够找到有用资料的能力也弥足珍贵,远比单纯的说背个二叉树遍历好太多了。一家之言,仅供参考,如果觉得这种面试深得汝心,也欢迎投简历给我,哦,工作地点是上海
,移动互联网领域JAVA端一支小考拉
这题又成功的引起我的吐槽欲了。面试到底应该问什么题?现在发现好多小公司的人事与面试官根本对自己的项目所需要什么样的人不清楚不了解不关心。一种面试官就是,我也不知道要什么样的人,基础过关就成,从网上搜来的不知道什么时候也不知道哪家公司还是哪个无聊人写的面试题,来,同学,先做上一份吧。做完了看看成绩,嗯,不错嘛,全然不管人家答的题和你要的人有没有相关性。员工入职后,这不能做那不能做,原因是你项目相关的东西,面试的时候都没问。另一种面试官,写一堆的算法呀,逻辑呀,力求找个高手,低层工作的程序员谁会那个,干活一个比一个快,也不见得还记得几个算法。真正记得住算法的人你感觉不错,人家开的工资你老板又不同意。面试官同学,你现实点儿成吗?要么你找老板多要点儿工资来请人,要么你就按老板给的工资请的合适的人。老想以老板给的工资请个高手来,还总是埋怨现在的人水平太差,看看行情成嘛,别浪费自己和大家的时间。------------------------------对于真正想招人来干活不是招来供着的,请明确以下几点。招15K以下的程序员,就别问算法什么的了,多问点儿你项目中可能出现的问题看看人家的解决思路,对当前项目中用到的技术的熟悉程度,性能调优的思路,看看说话办事儿靠谱不,沟通上有没有问题。如果你说你们简历太多来面试的太多,你们还没找到人,那一定是你们招聘简历写的太烂,一上来就这个精通,那个熟练,是个人就可以投,招得到合适的人才怪,只能是浪费大家的时间。
这个有点类似于「明明高考已经比大学课程简单很多了,为什么还有70%的网友吵着要把数学赶出高考」
个人认为记忆各种算法的具体实现没什么太大意义,更有意义的是了解什么时候应该用什么样的算法。比较好的办法,就是提出一个在某种具体情境下的问题。同时给面试者一台可以联网的电脑。面试官可以坐在后面看他是如何搜索,搜索什么样的内容。以及如何选择,实现,改造算法以适应这种具体情境的。能从网上直接搜出来答案的问题都不算问题的。当然我只是做梦而已。
,哥写的不是代码,是梦想
为了照顾某些面试者的感受,只能出些算法题这种比较简单的题目。为什么说算法题比较简单呢?首先这些题目是有答案的,其次这些解题方法是可以通过简单学习掌握的,有大把的书籍和资料,可以用普通PC编程来测试验证。真正难的问题是那些需要多年的研究和实践经验积累才能弄明白的问题,需要很强的分析理解能力,并且需要很好的表达能力,能清晰准确地描述出问题的解决方案。没有特别明确的答案,要在多种方案中结合实际情况权衡利弊做出判断。
,前端工程师
撸主的工作是对算法有要求的,可现实是大量跟算法无关的工作也考算法。正如招一个看门月薪3K的公务员需要985硕士会让人气愤,就算那真的是高大上高科技的门也很难让某些人坦然的。我应聘的时候讨论的是map用各种有序树和散列法实现的优劣对比,可是工作中遇到的最复杂的算法就只是递归遍历森林而已。。。。就好像学了线代最后只有矩阵的加法和乘法用得上一样。=============其实常见的算法理解了过程之后就只是背一下适用场景、实现思路、复杂度分析之类的就能应付很多面试了,面试不太可能要求现场写完整而完备的代码的。但是既然常见的算法跟大学考试一样并不是很难可以临急抱佛脚的,那么需要用到的时候再去学不很好么?为什么我们能够普遍接受程序猿“用到什么就去学什么”的观念,却惟独对算法如此要求苛刻呢?为什么不优先把精力投放在更有用、更重要、更紧迫的方面上却要要求算法呢?能够很好地掌握跟工作岗位紧密相关的各种技能都已经很不容易、范围很广了,可是在这种情况下却依然不在这些方面做详细考察,却给人以“用数学筛人”的错觉难免难以服众。面试官真的精通这些而不是为面试而面试?面试官日常工作也用到这些?诸如此类的这些才是大多数人会遇到的让人气愤的现实。==========说白了个人觉得这是一股不太好的风气,正如某些lisp派鄙视新手认为一定要完全掌握才有资格参与讨论,却不愿意做一些让lisp看上去如python般和蔼可亲的帮助新手在现实环境中能够简单上手使用的东西一样。更有甚者要求Full-Stack却干的狗样儿的活儿还啃着猪样儿的粮票。其实总的来说,我是支持要懂点基本的数据结构和算法的。。。。否则偶尔遇到瓶颈的时候如果对相关方面完全没有概念的话是没办法自行解决问题的因为无从下手。
,软件开发临时工
日薄西山……纸巾盒……我好像知道了点什么……
话说现在的应届生对于算法的不重视,我认为有一部分原因是学校/学院对算法的不重视。我所在的学院是软件学院,关于算法的课程,仅仅有一门选修课。
此外,期末的考核方式也有问题,只是在纸上写一些选择填空,计算,画画步骤,写写伪码。最难的题目,也就是无空间优化版的 0-1 背包了。
其它课程的考核中,也几乎没有对算法性能的要求,只要大家写出功能就 OK。所以久而久之大家就缺少了某种精益求精的精神。
还有我觉得一些同学观念有问题,总觉得实际项目当中大部分代码对于算法的要求不高。其实学习算法一方面是掌握一些常用的算法,另一方面是学会设计和分析自己写的算法。有的时候自己撸了一段代码出来,虽然能用,但是可能性能经不起考验。此外,就算项目中使用高深的算法的代码不多,但是这却是一个区分优秀码农和平庸码农的地方啊。
因为不让用电脑……
没办法。。程序员群体太大,这年头会写个helloworld的都敢自称程序员了。
算法不是没用,只不过在大部分初级工作里用不到。我很讨厌数学,看见那些抽象的数字就会特别烦躁。。码农就码农,没什么不服气的,我就愿意当个码农,我也就是个码农级别的。觉得码农和coder之间的关系就好像建筑师和工人的关系。建筑师厉害,但是没工人盖房子能行吗?分个等级也没什么,大牛们继续加油写好用的框架。我们码农就来负责给客户实现需求。这样不是挺好吗?公司招人我觉得需要先搞清楚自己究竟是想招一个大牛还是码农。
我发现现在的人就喜欢黑自己不会的东西!
假设一家公司某个软件岗位需要招人,你如果作为面试官,肯定是希望找一个有相关背景的人。比如招聘一个搜索引擎类的人才,面试的时候,肯定要问相关搜索算法如何实现,各个算法之间有何优劣,甚至让你出示一下你在相关领域的论文等等。你说会让你当时写一段二叉树排序么?又比如招聘一个无线通信的基带信号处理软件工程师,面试问题肯定是64QAM信号如何解调,IRC算法什么情况会比MRC算法灵敏度高2dB,信道编解码中卷积如何处理,各种调制方式使用哪些算法等等。你说会当场让你写一个矩阵求逆的代码么?面试时考算法,只有三种情况:第一种是工作密切相关,这种情况下,问的算法可就不是快速排序、二分查找这种本科生的东西了。第二种情况,就是你的技术背景不匹配岗位要求。什么样的候选人不匹配岗位要求还会得到面试机会?本科应届生(硕士以上基本会在本行业中有所建树)。对应届生面试,真的想不出什么好的面试题来考察能力。应届生完全是一张白纸,你问他相关行业知识,这不是难为他么?而算法是基础,是基本功,是应届生能力和岗位需求唯一能匹配的地方。还有一种情况,就是这个岗位太新了,市场上没有几个业内人士。那想招个合适的人,只有面试算法了。比如google就经常面试算法(而且还特难)。回到题主的问题,工作中的算法是相当艰深的,每个算法背后都是一堆paper。面试问本科应届生肯定是问一些很简单的算法了。为何还让候选人很生气,我觉得主要还是因为很多面试官面试社招生也面试算法了。对于我自己,我作为面试官,如果是找个新手来培养,面试个排序啊的算法还是很有用的;如果找个有相关背景的,问的问题都是围绕岗位要求而展开的。每个行业的圈子都不大,就那么些人,大家都发过paper,身上多少都有几个专利,兜两圈都能攀上关系,你说面试的时候出个快速排序,无论出题的还是做题的,老脸都没处放。
只能说岗位不同吧,你要是涉及数据挖掘、自然语言处理这些必定是要和算法打交道,但是你说只做客户端或者前端基本上是八杆子打不着算法啊,很多大学里学过或者工作后自己自学过的人,只要不用的话,会很快忘掉的
工作中的算法是结合场景的,更像在探索,面试过程不结合场景。生硬的来一个比较古板的课本上的问题,更像考试,大家都不喜欢考试吧?
,打酱油的。
因为你的目的达到了。用简单面试题过滤了那些不想动脑子,不够聪明的的人。不要指望他们写的代码能长久的存在你的代码树中。
,利益相关:一切美食
因为大部分人智商确实不够,而且大部分人大学里确实没好好听过课
,考古;环境;计算机
算法是逻辑的体现,也是创新的基础。若你不学不知,就会出现明明有成熟算法却要自写低效代码的情况,也会出现没有算法就无解不能自写一段的情况,然而有了算法却要改进一下让效率更高的情况却是绝对不可能出现了。coder和码农,区别就这么多。或许一家公司只需要码农,但你不能否定人家对coder的追求。
1,有些面试官,图森破,就“只”会考算法,作为面试官好好准备一下面试题也是必须的吧。2,对不满意的你考了算法的,那你就问知识面,不满意你面了知识面的,那你就面系统基础,不满意你面了系统基础的,就面一些有意思的考逻辑考想法考发散思考考解决问题能力的问题(自己遇到的,一定遇到过的,还聊的有意思)…… 总分100分,让一项占分就溢出了的不能让其他猿信服。3,还不满意的,角色互换一下,让面试者面试自己。 4,还不满意?那,战三百回合跨专业领域的知识何如?有的面试,失败了也很爽。双方都爽,双赢。顺便表示一下,"程序员能力矩阵"里可面的也多了去了。
,多学习,少YY。
这其实是个伪命题。“面试题比工作遇到的算法已经简单那么多”只是你接触到的情况,并不代表普遍的情况。因为微软内部的要求和八流公司是不太一样的。我知道这么说不上台面,不过你确实可以问问做大PHP的一万块以下能熟练撸二叉树各种遍历的有几个。面试中撸不出来很多是因为不熟,工作中必然能撸,就是慢点而已。你得到抱怨的真实原因是:你们确实需要这方面的基础,这是很起码的;而慕名前来面试的人水平参差不齐,很多屌丝只是冲着高大上碰碰运气而已。我曾经有一份offer是13k,最后的大题是二分法填空。这样的人去面试你们公司,结果可想而知。他觉得自己经历过的公司根本用不到这些,所以微软这么做太事儿逼了,眼界窄而已。
IT,互联网的圈子越热,你大码农圈的两极分化就越严重。
普通程序员一个,谈谈自己的看法。我们部门有一个老程序员,面试的时候特别喜欢问快速排序。我:为什么你每次面试都问快排?他:我和xxx一起面试的时候,xxx喜欢问快排。我:算法我都忘的差不多了,平常也不怎么用。他:是啊,我也记得不是很清楚了。普通程序员需要用到算法的机会很少,慢慢的以前学的也都忘了;而经常需要和算法打交道的,会越来越意识到算法的重要性。一个只注重功能的实现,对算法不甚了解,另一个却对算法情有独钟。这两类人碰到一起是一个很尴尬的场景。我觉得这可能就是为什么会发生‘面试者义愤填膺’这类情况的原因PS.我平常工作也没用到过什么算法
,遊戲程序員
这和一般考生离开考场时的心理状况一样吧。总有一些人会诅咒出题员,而不反思自己的不足。邪恶地想,如果是面试形式,问一些很少人听过、而又未有解的题目,看看应试者的反应,心理质素如何……知识技能不足还可以不断学习,心态可能难以改变。
面试中所有问题,都不是看是否说出正确答案。
,不知道学架构还是项目管理的男猿
算法派和功能派本来就是两个门别。更何况还有一些更郁闷的事情,比如,从大数据流行起来之后,很多互联网公司都开始问程序员们大数据高并发的处理方案,很无语的一件事情。尤其是一些不用接触到那样业务的职位,甚至是没有那方面需求的公司。
,C++程序员,只写代码,不做PPT
好多人工作中用不到算法
,懂生活的码农
我不认识你,不了解你,这么多求职者,我怎么选择,怎么分辨优劣呢?只是一种手段。
,互联网产品开发者
愤怒都是对自己无能的情绪表达。
如果要立志做优秀程序员的话,算法这种东西,就是平时积累的,经常用就自然游刃有余了。。如果你比较少碰代码的话,自然就生疏了。。你说还是呀。。会写个helloworld都敢说自己掌握了某种语言的人自然就义愤填膺了。。
,Programmer/网页游戏开发/ECNU/菜鸟摄影…
楼主暴露了,MS无疑~
,我是逗比
公司招来了人可能只是做一些简单的东西。但是公司需要的是聪明的员工,算法对于你的暂时工作可能没那么重要,但是能从中看到你的思路,看到你遇到问题的处理方法。公司喜欢聪明人。但是很多人(比如我)面试问到算法题,感觉智商被压制被完爆被凌辱被鄙视,颜面扫地优越感尽失。必须暴跳如雷大骂特骂一下才能发泄好嘛?
,OOP ? FP
考算法是一种非常好的方法就是这样
,爱厨房爱摄影的徐工……
因为算法题就是用来筛去这些抱怨的人的。
,啊哈,还要介绍~
对于应届大学生中啥都不会的人而言,算法题实在是——太痛苦了。完全不会做啊!!有一回校招,一家公司笔试现场。试卷发下来,一张写了几行题目的纸,两张白纸答题。题目三道算法题,寥寥数字。——完全不会啊!一笔都写不出啊!时间2个半小时啊!你让我怎么做?让在那傻坐坐满2小时,很痛苦的。前提是不会做,那次考试做出来就几个,都直接过了。
,关注新技术,学好基础知识
作为一个在纸上写自己名字都有点费劲的人,更别提在纸上写代码了。写代码习惯删删改改,到了纸上写不了几行就乱糟糟的,心里很烦躁,原本就不是很熟,笔试时的紧张,彻底没感觉了。有些职位可能供大于求,那有点优势,多方面考察我也是能理解的,但既然是写代码,那就提供个开发环境可好。面试那么多回,只有一家公司提出上机,2家公司要求提供实际编程题。
正面回答一下LZ的问题,我觉得这种矛盾是面试者和面试官的经历不同造成的。我面试过不少人,有的面试者很有工作经验,应该也很能干活(根据其对各种技术细节的了解判断的),但是对于面试算法题很抵触。一部分人认为“我不懂算法不是照样在现在公司做业务骨干拿着几万月薪么”,那么只能说,我们这的岗位不适合他们。有一些公司,例如我待过的某著名企业管理软件公司,在里面做的事情无非就是业务逻辑和数据库ACUD,懂不懂算法不重要,因为核心的算法已经比较成熟了,而且有专门的团队在维护;而在里面工作的一些人久而久之就觉得不会算法也可以混的很好了。也有一些公司,处在比较新兴的行业,遇到很多问题是靠搜索也很难找到好的解决方案的,这时候人是否聪明已经是否有好的技术基础和行业经验,直接决定了是否能提出快速高效的解决问题。对于面试官来说,面试者的行业经验是可遇不可求的,而考察面试者是否聪明和是否具有技术基础,使用算法解决特定的问题是最直接的面试方法。
if (问题 == XXX)
if ((应聘的是不需要用到XXX的工作) && (项目/工作经验中的YYY亮点跟应聘职位相符合))
// 艹,老子是来面试的不是来被你玩的
std::cout && "呵呵" && std::
有的人亮点是研究算法,搞研究,给搞产品的人提供基础支持。有的人亮点是快速解决问题,搞产品,快速占领市场,给搞研究的人攒钱。有的人是......工作上,我一直不纠结是该造一个更好的轮子呢,还是从现有的轮子里选一个,因为我现在做的不是研究,是赶紧把东西整出来。干了这么多年“赶紧整出来”的工作,你居然来问我,重造轮子的技能~~ 万万没想到啊
,你看看你写不出代码的样子,真是丑陋
Disclaimer: 我曾多次折戟大公司的算法面试,这些公司基本是诸位耳熟能详的。文笔不通顺还请见谅算法题没有过关说明三件事:1. 没认真准备2. 没努力学编程3. 智商不过关没认真准备:因为一些原因,去年我找到实习后,仍然不得不去某著名游戏公司的电话面试。我没有做任何准备,而且当时线路非常有问题,导致双方沟通不畅,没有给出对方想要的最低的复杂度的代码。没努力学编程:一开始我和很多人想的一样,算法知道个复杂度就行,后来发现,你没实现过,你不熟练,很多的坑根本躲不过去的。用别人的代码,别人用了某个算法,你需要提升你的代码性能,如果你不从里到外的了解别人使用的这个算法,比如你用这个算法对某个数据结构增删改查,什么情况会最坏,什么情况会最优,什么情况平均复杂度不错,什么情况随机会有奇效,你怎么弄?然而真正想对一个算法在一定时间内有了解,数学、编程和算法的功底都不能差。在我以前功底不行的时候,真的是太浮躁,自以为那个复杂度自己背一背就真的可以了解。现在功底慢慢进步中,回想当年自己那副自以为是的样子,真是丑陋智商不过关:我也属于这个情况。另外适用于少部分公司面试。曾经被要求使用斐波那契堆实现代码,我直接投降。另外关于智商,其实是一个非常难以量化的指标,有的时候这人你看似反应快,实际上是他长期自我训练、刷题、刷书的结果,你说出来感觉非常牛逼非常新鲜的东西在他眼里都是搞过的。我现在的观点是,难题做不出来,还是积累太少,这就是欠练。总之,我觉得只要你想成为更牛逼的程序员的话,肯定不会不下功夫在算法上。而且下功夫在算法面试上,你怎么样也不太会吃亏。就是常常李菊福黑ACM/ICPC比赛的菊苣 都至少刷完了1周目的算法导论,真搞起算法,我相信他实力应该也不错...
,硬核玩家是啥?
作为一个被面试者,我觉得大部分「义愤填膺」的人可能反感的并不是算法题,而是非常秀下限的coding题。很多外企在国内进行的面试,面试官水平同样参差不齐,以为coding题就等于算法题。去年校招的时候,碰到一个刚面完Amazon的,听说他整个45分钟的面试,全都是类似这样的题:输入unix时间戳,输出格式化表示的当前时间。对于这种明目张胆地以招码畜为目的的公司,真的不知道该用什么表情来面对了。
看了各位的回答, 我是有点羞愧的。羞愧的是我自诩是一个程序员,而且差不多也就是能写写链表排序,插入,删除节点那种程序员,要我手动写个快排序,还是挺无力的。问题是:老子是个嵌入式程序员啊!每天写的代码不多,可能就几行吧,差不多就是配配寄存器,看个电灯,按个键,看log打印,一句代码调半天你们有没有试过!!很多时候就是某个或某几个寄存器写0还是写1的问题纠结半天,各种排列组合试一遍啊!你们debug按一下F5就OK啊,红点一点,watch窗口一开一切尽收眼底啊, 我们debug一下就要烧整个代码镜像啊,就是刷机你造不造,搞得不好还时不时给你看看你没看过的打印蹦出来你造不造?什么? 你这个模块要用到排序?老子只能google给你找一段改改参数,真的就是那种能跑就行了啊,效率应该比老子自己写的冒泡不知道好多少, 调通模块就好了。你跟老子扯性能? 你造不造linux啊, 国外的大神都把系统启动,中断处理,文件系统, 进程调度各种算法优化都搞的差不多了,你只要把驱动调通了挂上去能work了不出乱子了性能基本上OK了啊! 跑起来杠杠的啊!老子作为一个程序员,也很崇拜算法啊,大学时候ACM也是没事就看看练练啊! 现在呢? 老子要深造也不看算法啊, 就看汇编啊,什么启动代码啊,编译脚本啊,uboot啊,linux啊,各种东西看半天啊, 还要找各种文档各种博客看啊,自己光看代码根本看不懂啊,把ARM公司的各种文档当鸡汤文来看啊,很励志啊不信你们试试!!逻辑性很强还很带感呐~唉, 搞了半天老子原来连码农都算不上啊!!!哭。
面试算法表示没有感觉。最受不了的就是 都工作好几年了。问我“Java是一种________,_________,________,__________,_______,_________,_______,_________语言。”答:简单的、面象对象的、分布式、解释的、健壮安全的、结构中i的、可移植的、动态
有几个公司工作里能用到算法的。。。二叉树这种玩意绝大部分人毕业后就只是在书上才能见到了好么
馆藏&19983
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢

我要回帖

更多关于 贪心算法几个经典例子 的文章

 

随机推荐