首页 测试 体会 查看内容

最糟糕的编程面试题

2014-8-5 23:15| 发布者: tianzc| 查看: 751| 评论: 0

摘要:   多年前,我写了一篇关于我所鄙视的某些类型的面试题。今天我想讨论一个更具体的问题,而不仅是类型。我从来没有问过自己这个问题,但我已经看有人在实际面试中提这个问题,我正式提名它为最糟糕的编程面试题。  ...
private static class Entry <E> {E element;java.util.LinkedList.Entry<E> next;java.util.LinkedList.Entry<E> previous;Entry(E e, java.util.LinkedList.Entry<E> entry, java.util.LinkedList.Entry<E> entry1) {/* compiled code */}}  它是一个私有静态类,你无法从外部实例化它。你不能直接操控next和prev,因为它们俩代表了链表的状态,它们就该这样被封装起来。  如果你真的把链表搞成有环了,那说明你写错。写错的话,你最好重新写对它,而不是写个“检测环”的方法。  “检测环”的方法就该这样写:public class LinkedList {public boolean containsCycle() {return false;}}  如果你的链表写对的话,“龟兔算法”返回的结果也跟这个方法一样。  现实中你是很少有机会亲手写个链表的,即使有,你也别写个能造成环的方法。造成环的方法,只能是“留后门”,“元编程”,“反射”。既然是这样故意的话,那么绕过你的“检测环”也是轻而易举的。  结论  很多面试题,都中了以上其中一点,太过困难或者与工作无关。  而这个问题,两点都中了。  如果有人给到你满意的答案,就说明那个人死记硬背,无他。因回答不了而被你否决的人,说不定还比你更适合这份实务。  链表环路检测:别问了。  更新:有位评论者说如果问题问的是有向图,且每个节点的出度最多只有,即是问“检测这个有向图有没有环”。搞图的话,你确实可能会向API用户提供修改每点的指向的方法,这看上去符合实际。但是,还是那句话,你只是在考察应聘者把CS课程记住了多少,或者你只想随便问问,又或者你想听听他说除了龟兔算法以外的低效算法。
  看下java源码就知道,真的没有:
12

鲜花

握手

雷人

路过

鸡蛋

扫一扫关注最新动态

毒镜头:老镜头、摄影器材资料库、老镜头样片、摄影
爱评测 aipingce.com  
返回顶部