软软件设计师算法上午题概念笔记

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

在这里插入图片描述

在这里插入图片描述

算法总合

动态规划法求全局最优解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值