N皇后问题
**走迷宫 **
以上q2不行 因为不能在同一行
这条路所有的都走不通所以需要回溯回溯至上一条路,把上一个皇后位置改变下
重新放皇后三
皇后四不能放所以回溯,发现皇后三也不能放
再往上回溯,发现2也不行那就回溯皇后1
总结:相邻的两个皇后至少隔一行或一列
处于同一条斜线上的两个皇后,行号之差的和列好之差的值是一样的
非递归求解N皇后问题
定义的数组加1是因为需要从1开始而不是0
先存入j是要对j检查然后下面代码是检查
判断代码
queen是初始化把期盼所有初始化为0表示都还没数据
递归求解n皇后问题
到了皇后3发现都不合法方法从栈里消失执行皇后2栈
回溯过去后继续执行上一个皇后的i++,q2跑到了4
分治法(递归实现)
pr对映左右边界
**只有p<r的时候才需要分解 **
merge是最后的合并
求得是序列长度n1n2
分治法 最大子段和问题(时间复杂度)
那个符号的意思是k从i开始到j结束对ak求和
题
动态规划(分治法相似 )
分治法子问题独立说明子问题是不一样的
动态规划法是没计算一个子问题的解都会将其保存下来 等以后遇到相同的子问题直接调用解
01背包问题的01是物品要么装进去要么不装
01背包问题
分解子问题
求解01背包问题
每次j++一下
https://www.bilibili.com/video/BV1CS4y187Hk?p=15&spm_id_from=pageDriver&vd_source=6092f2dd634d869c97e5d08dde6f3844
背包问题代码实现
01背包问题空间复杂度(矩阵连乘时间复杂度)
题
a以深度优先去找解 找不到的话就回溯到上一级
加括号使得计算次数最少就是计算次序
贪心法
部分背包问题求解(贪心法)(时间复杂度)
部分装入背包(0<=x<=1),但是是背包能承受的最大值,比如容量为9 装了8
部分背包问题代码实现
https://www.bilibili.com/video/BV1CS4y187Hk/?p=27&spm_id_from=pageDriver&vd_source=6092f2dd634d869c97e5d08dde6f3844
题
算法总合
动态规划法求全局最优解