九章算法学习笔记

本文探讨了在面试中如何通过清晰解释、高效编码和遵循良好的编程习惯来展示九章算法的理解。重点强调了代码质量的重要性,包括BugFree、命名规范、避免冗余和异常处理。同时提到了优化算法逻辑和解决最长回文子串问题的方法,提倡从暴力求解出发寻找优化空间。

九章算法第一章

面试过程中编写代码的情况

  • 先解释中心思想,再编写代码,整体解释。
  • 注意代码风格。
  • 内部类不可取。
  • 命名清楚。
  • 区间型动态规划 – 大区间的结果依赖于小区间的结果(for循环区间的长度,for循环区间的起点,计算区间的终点)。
  • 不推荐全局变量。
  • 重复代码存在问题。

好的代码质量

  1. Bug Free(优化代码风格-子函数+好的命名风格,目标明确不易出错);
  2. 好的代码风格:包括变量名命名规范有意义,合理的使用空格,善用空行;
  3. 容易读懂的逻辑:复杂事情简单化;
  4. 没有冗余代码;
  5. 有边界检测和异常处理。

面试算法不等于算法

九章算法第二章

四种不好的代码风格

  1. 异常检测:需要对空对象进行特判;
  2. 变量命名:尽量不要用单个字符进行命名;
  3. 代码美观:在必要的位置需要加上空格;
  4. 缩进过多:通过用函数包装代码块减少代码的缩进。

实现较好的Coding Quality

  1. 判断参数异常值
  2. 变量命名易懂,避免abcd……
  3. 缩进尽量不超过三层
  4. 函数名命名合理,如return的是boolean值,则可写isxxx()
  5. 逻辑块使用空行分开
  6. 必要位置需要添加空格,如for (int i = 0 ;……)

优化算法的逻辑

  1. 先思考暴力求解的情况,分析优化空间;

最长回文子串求解

  1. 暴力求解, O(n^3)
  2. 基于中心点的枚举Enumeration
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值