![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Grayson Zhang
热爱学习
展开
-
day12 猜年龄(跳出多重循环)
猜年龄小明带两个妹妹参加元宵灯会。别人问她们多大了,她们调皮地说:“我们俩的年龄之积是年龄之和的6倍”。小明又补充说:“她们可不是双胞胎,年龄差肯定也不超过8岁啊。”请你写出:小明的较小的妹妹的年龄。跳出多重循环的三种方式:(1)自定义异常(raise)(2)自定义函数(return)(3)使用带else字句的循环结构young = 1while True: for old in range(young+1,young+9): if young*old == 6*(原创 2021-01-18 11:35:17 · 230 阅读 · 0 评论 -
并查集
并查集——管理元素分组结构:树(有时也可以是图)1.初始化:每个结点为一个单元素集合2.合并:由一个元素指向另一个元素如果有代表元素参与,那么元素上的合并本质上也是组与组之间的合并3.查询:由树的“叶”去找“根”()代表元素本质上是递归的“归”,是dps的部分路径压缩:在递归的过程中使途径的每个结点都指向根节点*4.连接:用于检验节点间是否连通 代码(python)在python中我们用字典记录映射关系class UF: def __init__(self, M):原创 2021-01-15 12:57:31 · 117 阅读 · 0 评论 -
双指针
双指针1.快慢指针(同向)结构:两层while循环大循环是两个指针共同前进小循环中慢指针定,快指针动例:(LC)228. 汇总区间原创 2021-01-13 17:04:42 · 100 阅读 · 0 评论 -
滚动数组
滚动数组1.当动态规划中x(k+1)=T(x(f(k))[即决策变量t(k) = g{x[f(k)]}时],可以用滚动数组来优化算法的占用空间原创 2021-01-09 18:25:17 · 122 阅读 · 0 评论 -
深度优先搜索的框架
深度优先搜索(最少分支找到答案)一、准备1、节点间的relationship2、列表lst(存放遍历结果)3、集合set(去重)二、结构(函数递归)def dfs(root):1、首先判断根节点是否为空节点 if root is None: 略2、根据实际情况处理节点3、判断结果是否满足(满足则输出)4、如果不满足,依次取出relation中的下一个节点next_root,然后dfs(next_root)应用...原创 2021-01-09 15:55:58 · 316 阅读 · 0 评论 -
广度优先搜索的框架
广度优先搜索(最少层数找到答案)一、准备1、队列queue(存储节点)2、列表lst(存放遍历结果)二、结构(两个循环)每一层是一个循环(for)遍历每一层构成一个大循环(while)1、计算该层节点数size,从queue中取出该层节点(for)大循环在queue为空时终止2、根据实际情况处理节点3、判断结果是否满足(满足则输出)4、将不满足的结果加入加入queue,成为下一层的节点...原创 2020-12-26 16:56:36 · 198 阅读 · 0 评论 -
动态规划模版
动态规划模版一、 适用条件1.最优化原理(最优子结构性质)最优化原理可这样阐述:一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简而言之,一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其具有最优子结构性质。2.无后效性将各阶段按照一定的次序排列好之后,对于某个给定的阶段状态,它以前各阶段的状态无法直接影响它未来的决策,而只能通过当前的这个状态。换句话说,每个状态都是过去历史的一个完整总结。这就是无后向性,又称为无后效性原创 2020-12-21 10:37:44 · 142 阅读 · 0 评论