只能解决单个问题没有推广性的算法 , 有简称 , 带人名的算法 , 这些算法与编程能力关系不大 , 基本面试中不会出现 ; 算法工程师岗位除外 ;
刷题关注点 : 不要乱刷题 , 刷题范围如下 ;
① 算法: 字符串处理...深度优先搜索 , 二叉树遍历 , 动态规划 , 拓扑排序 , 递归 ;
② 数据结构 : 数组 , 链表 , 二叉树 , 堆 , 哈希表 , 线段树 , 树状数组 , 跳跃表 , 红黑树 , 字典树 , 并查集...: 代码 适当地拆分成子函数 , 拆分的越细 , 子函数越多 , 代码越长 , 但是 代码可读性增强 , 更易于维护 , 出错较少 ;
变量 / 方法名称 :
变量 / 方法 命令 , 都要有实际的意义...;
if 与括号之间 加空格 ;
if , for 括号与花括号之间 添加空格 ;
逗号后面 添加空格 ;
使用空行 : 一个方法中 , 使用空行分隔不同逻辑模块 ;
异常检测 :
所有的函数 , 进来第一件事就是...验证参数是否符合要求 ;
只要涉及到函数 , 都要 确保下标不越界 ;
访问对象 , 确保对象不为空 , 避免空指针异常 ;
避免使用全局变量 ;
算法面试 :
如果拿到算法题目没有头绪 , 可以找面试官要提示