降低复杂度的核心方法主要三个步骤:
- 第一步,暴力解法。在没有任何时间、空间约束下,完成代码任务的开发。(没有太多的套路,只要围绕你面临的问题出发,大胆发挥想象去尝试解决即)
- 无效操作处理。将代码中的无效计算、无效存储剔除,降低时间或空间复杂度。(需要学会并掌握递归、二分法、排序算法、动态规划等常用的算法思维)
- 时空转换。设计合理数据结构,完成时间复杂度向空间复杂度的转移。(需要对数据的操作进行细分,全面掌握常见数据结构的基础知识,再围绕问题,有针对性的设计数据结构、采用合理的算法思维,去不断完成时空转移,降低时间复杂度)