《剑指offer》读书笔记系列-3


一、面试官谈代码质量

写代码不能只想到“正常值”情况的处理,需要考虑异常状况与资源回收。

二、代码的规范性

  1. 规范的代码书写清晰(这里说的是远古时期在纸上或者白板上写代码的情况)。
  2. 规范的代码布局清晰(同上)。
  3. 规范的代码命名合理(大驼峰、小驼峰)。

三、代码的完整性

面试官会关注应聘者考虑问题是否周全,考虑问题的顺序:基本功能->边界值->非法输入

1.从三个方面确保代码的完整性

  1. 功能测试:突破惯性思维的影响,看到全面的功能需求
  2. 边界测试:结束循环/递归的边界值是否正确
  3. 负面测试:考虑到各种可能的错误输入

2.三种处理错误的方法

  1. 函数返回值
  2. 全局变量
  3. 异常
  • 面试题①:数值的整数次方
    使用右移运算符>>代替除以2,用位与运算符&判断整数的奇偶。
  • 面试题②:打印1到最大的n位数
    需要考虑到大数问题,可以使用字符串
  • 面试题③:在O(1)时间内删除链表节点
    覆盖,删除
  • 面试题④:调整数组顺序使奇数位于偶数前面
    双指针

四、代码的鲁棒性

  • 面试题①:链表中倒数第k个节点
    快慢指针
  • 面试题②:反转链表
    维护三个指针,老经典题了
  • 面试题③:合并两个排序列表
    递归思想,注意对空链表进行特殊处理
  • 面试题④:树的子结构
    先序遍历树A的所有节点Na,然后判断Na为根的树中是否包含B

总结

编码过程中需要注意规范性,注意变量、函数的命名。
在编码之前考虑所有的输入情况,考虑好边界条件,做好错误处理。
为了确保程序不会崩溃,在函数的如靠判断输入的有效性并对无效输入进行处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值