常见算法思维
- 分治法
- 迭代法
- 枚举法
- 回溯法
- 贪心法
- 动态规划
一、分治法
核心思想:将一个复杂的问题拆解成多个简单的子问题,递归的求解这些子问题,如果子问题还是比较复杂,则继续进行拆分,最后再将所有子问题的解合成最终结果
核心步骤
- 分解:将一个复杂的问题拆解成多个简单的子问题
- 求解:递归的求解这些子问题
- 合并:将所有子问题的解合成最终结果
举例:归并排序
优点:简化问题,通过分解大问题,转换为较为简单的子问题,易于求解
缺点:往往需要额外的空间,用来存储分解后的子问题,空间复杂度一般为O(n)
二、迭代法
核心思想:重复执行一系列步骤,直到满足某个条件或者达到预定的目标,每次迭代在一定程度上修改问题的状态,最终通过不断的更新和计算得到问题的解
核心步骤
- 初始化:确定初始值,准备进入迭代
- 条件判断:每次迭代开始之前,判断状态是否满足条件,如果满足,退出迭代
- 更新:更新状态,进入下一次迭代
- 重复:一直执行迭代
举例:计算递增排序的和(计算1+2+4+5+…+2)
三、枚举法
核心思想:列出所有可能的选项,并逐一检查某一个选项,判断是否符合问题的约束条件
核心步骤
- 穷举所有可能的解
- 检查每个解是否符合要求
- 选择合适的解
3059

被折叠的 条评论
为什么被折叠?



