摘要: (写于20200520) 回溯法 1、基本概念与关键理解 (1)回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略 阅读全文
posted @ 2021-02-22 20:51 icodes 阅读(743) 评论(0) 推荐(0)
摘要: Google Colab 使用易错总结 正常步骤 "以SiamFC++为例" 注意点 1.一定要注意先选取运行环境!!!否则后面的工作白做 2.在colab中使用命令需要注意对空格的转义 3.colab运行目录是/content/drive/My Drive 要特别注意当前工作目录,使用以下命令进入 阅读全文
posted @ 2020-04-05 10:44 icodes 阅读(1030) 评论(0) 推荐(0)
摘要: 算法1:RK算法 算法描述: (1)计算模式串的Hashcode 方式1:按位相加; 方式2:看成26进制数转化为十进制,如abc = 1x26^2 + 2x26^1 + 4x26^0; 方式2缺点:字符串很长时,对应的十进制数会非常大 (2)主串采用增量计算 例如:主串:abbcefg;模式串bc 阅读全文
posted @ 2020-03-06 23:34 icodes 阅读(894) 评论(0) 推荐(0)
摘要: 最小生成树与判断无向图是否有回路(并查集) 一、最小生成树算法: (1)Kruskal算法 (a)找出权重最小的边 (b)判断加入该边以后是否会构成回路(并查集),如果不会,将该边加入生成树中 重复(a)(b),直到生成树中有n-1条边 (2)Prim算法 选一个结点作为起始结点,并将其加入已选结点 阅读全文
posted @ 2020-01-31 11:19 icodes 阅读(3324) 评论(0) 推荐(0)
摘要: 拓扑排序与判断有向图是否有环 方式1:基于BFS:采用入度的方式判断是否有回路 定义队列Q,将所有入度为0的结点加入队列 取出队列的首节点,输出,然后删去从它出发的所有边,并令边的另一端结点的入度减1,如果减到了0,就将其加入队列 重复上面一个操作,直到队列为空。 队列为空时,如果入过队列的结点数为 阅读全文
posted @ 2020-01-31 10:44 icodes 阅读(4945) 评论(0) 推荐(1)
摘要: 带括号表达式求值 算法1:双栈法 (2019.11) 算法描述: (1)规定运算符优先级(详见具体操作步骤) (2)对输入的字符逐一检验 (a)如果是数字字符:按位权转化为数值 (b)如果不是数字字符:将上一步的数值压栈 i 如果是'('或符号栈为空:将该字符压入符号栈 ii 如果是')'或'=': 阅读全文
posted @ 2020-01-30 17:46 icodes 阅读(1996) 评论(4) 推荐(1)
摘要: 最长子序列和问题 本随笔写于20200121 问题描述: 算法1:枚举法 算法描述:以2 -3 -4 13 -5 2 -5 -3 12 -9 为例,分别计算以2,-3,-4…,-9开头的所有子序列和,如果新子序列的和大于当前最大值,则用新子序列的和替代当前最大值。最长序列的下标的更新就发生在最大值的 阅读全文
posted @ 2020-01-30 16:52 icodes 阅读(1096) 评论(0) 推荐(0)