数据结构与算法(六):技术面试题

来源:互联网 发布:怀化瀚云网络 郭小平 编辑:程序博客网 时间:2024/06/05 20:37

算法题的五种解法:

《参考程序员面试金典》中技术面试题
1. 举例法:先列举一些具体的例子,看看能否发现一般的规则。
2. 模式匹配法:将现有问题与一些类似基础算法问题作类比,看看能否通过相关问题来解决新问题,往往适用排序或者查找算法。
3. 简化推广法:分多步走,首先修改某个约束条件,比如数据类型或者数据量,从而简化这个问题;接着我们处理这个问题的简化版本,得到某种解决问题的算法;最后,对上述算法推广,修改解决方案,让它满足约束条件。
4. 简单构造法:知道N-1/N-2的正确结果,就可以推出N的结果,从而发现规律,基于前面的结果解决后面的问题,从而解决整个问题,往往适用递归问题和动态规划法。
5. 数据结构头脑风暴法:快速过一遍数据结构的列表,然后逐一尝试各种数据结构,这种方法很实用,往往一旦找到合适的数据结构,很多问题也迎刃而解了。常用数据结构有:数组、链表、堆、栈、队列、二叉树。


解决技术面试问题的五步法

  1. 提问,向面试官提问,以消除面试题的疑以(注意提恰当的问题);
  2. 设计一种算法(考虑时间和空间复杂度,注意数据量、限制条件、插入、删除、查找、排序等);
  3. 编写伪码有助于厘清思路,减少犯错的失误(注意先跟面试官打招呼);
  4. 编写代码,注意不要太过仓促,放慢步骤,多用数据结构,写代码不要太杂乱,平时在纸上多练习;
  5. 测试:极端用例,用户错误,一般用例。

写出好代码的方法:

  1. 多用数据结构;
  2. 适当重用代码(一个方法解决一个小问题);
  3. 模块化,相关的函数或者类放在一个文档;
  4. 灵活健壮,不要把代码写死,用变量来表示写通用灵活的代码;
  5. 错误检查;
  6. 复杂逻辑最好加上注释说明,以加强可读性和维护性。
0 0
原创粉丝点击