经验总结02

  1. 求子数组或者子矩阵之和的题,应该不难想到要建立累加和数组或者累加和矩阵来做
  2. 素数筛选法最快
  3. 二分查找就是比普通的查找快
  4. 空间换时间
  5. 滑动窗口
  6. 三目运算符不如if else语句快
  7. 能用位操作符就用位操作符
  8. size_t 不能用于---的情况因为它没有负值
  9. 枚举所有情况
  10. 使用引用能够极大减少内存消耗,特别是递归时
  11. 能不用数据成员就不用数据成员,因为不用更快
  12. 递减栈
  13. 避免除数为零要用减法
  14. 玩子数组且跟极值有关的题天然适合用DP来做,想想为什么?DP的本质是什么,不就是状态转移方程,根据前面的状态来更新当前的状态。而子数组不就是整个数组的前一个状态,不停的更新的使得我们最终能得到极值。
  15. 对于玩二叉树的题,十有八九都是用递归
  16. 无论如何, 一定要想办法能单步跟踪;
  17. 无论如何, 一定要有很方便的测试数据;
  18. 对于引用同一个名字的UserControl, 它们很可能不是同一个文件!!!
  19. 对于看着很奇怪的问题, 应该把它写下来, 把前提和结果都详细写下来, 再仔细看前提。 大部分奇怪的结果是因为你错误的前提造成的——你的前提之中, 就有了一部分是由于粗心而弄错的, 它们实际上并不是你想象的样子
  20. 对于人名, 如果用户保存时包含了单引号或者双引号, 会引起意想不到的错误, 应该禁止;
  21. 如果一个业务功能,逻辑相当之复杂,以致于要写很多代码来完成,而且易于出错。应试首先试着想:是否能从业务的角度来简化,而不是死盯技术。
  22. 所有长度为偶数的回文数字一定是 11 的倍数