算法笔记
编程的正确方式
【TBD】
教训篇
中途加变量,那就充分运用它。
写一些
assert,知道有没有达到心中所想。cur = nullptr;只是把cur指向nullptr,原指向cur的指针不变~
=== 神秘地址
解决算法问题的思路
减而治之
分而治之
暴力想法:枚举所有可能的结果。一种是直接暴力模拟求解,另一种是逆向思维枚举判断可能的结果。
在暴力中发现有无重叠子问题、有无最优子结构等,进行空间换时间的优化。
根据有关性质(如:单调、数据范围)等,考虑进一步优化。
如果实在没辙,可以试试位运算、二分答案 等魔法。
【子问题思路】递归:两条线,往下调用和往上返回是两种类别,可以区分开的。
Tricks:
数组不一定按元素值排序,可以存下标去对应
递归可以设置全局辅变量(如
ans/tmp...)可以边遍历边构造数组
二分答案 法:常用于"最大的最小..."系列。
最后更新于
这有帮助吗?