上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 29 下一页

2018年1月5日

图的表示法:邻接矩阵,邻接表,前向星

摘要: 下面将介绍几种常用表示法:邻接矩阵,邻接表,前向星。以下图为例子: 邻接矩阵: 基础 0 1 1 0 0 1 0 0 0 可以用二维矩阵实现,意义: 第一行表示第一点,第一行也表示第一点,没有连接,为0; 第一行第二列,表示第一点到第二点,有连接,为1; 第三行,第三点,未连接到任何点,全是0; 扩 阅读全文

posted @ 2018-01-05 00:14 willaty 阅读(889) 评论(0) 推荐(0) 编辑

2018年1月4日

leetcode 235 236 二叉树两个节点的最近公共祖先

摘要: 描述: 给定二叉树两个节点,求其最近公共祖先。最近即所有公共祖先中深度最深的。 ps:自身也算自身的祖先。 235题解决: 这是二叉搜索树,有序的,左边小右边大。 236题解决: Aha: 其实还有一些优化可以在编译期层或概率层,如第一个if中的三个或,根据树的深度和测试数量,或发生的概率进行调整, 阅读全文

posted @ 2018-01-04 12:05 willaty 阅读(950) 评论(0) 推荐(0) 编辑

2018年1月2日

ICG游戏:斐波那契博弈

摘要: 描述: 有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下: 1)先手不能在第一次把所有的石子取完,至少取1颗; 2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍; 3)取走最后一个石子的人为赢家。 结论: 如果n为斐波那契数(2,3,5,8,13,21,34,55,89 阅读全文

posted @ 2018-01-02 17:49 willaty 阅读(490) 评论(0) 推荐(0) 编辑

2017年12月31日

ICG游戏:尼姆游戏异或解法的证明

摘要: 描述: 尼姆博奕(Nimm Game),有n堆石子,每堆石子有若干石子,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限。取走最后石子的人获胜。 标准解法: 判断: 先计算先手是必胜还是必败: 将每堆石子的数量做二进制异或(即用二进制表示,每个数字的第一位做异或;第二位做异或...), 阅读全文

posted @ 2017-12-31 00:23 willaty 阅读(1863) 评论(0) 推荐(0) 编辑

2017年12月30日

ICG游戏:证明,先手不是必胜就是必败。

摘要: 简介: ICG游戏:Impartial Combinatorial Games,公平的组合游戏。 以下是定义,来自网络,可能不够严谨: 1、两名选手;2、两名选手轮流行动,每一次行动可以在有限合法操作集合中选择一个;3、游戏的任何一种可能的局面(position),合法操作集合只取决于这个局面本身; 阅读全文

posted @ 2017-12-30 23:22 willaty 阅读(1264) 评论(0) 推荐(0) 编辑

2017年12月28日

leetcode 10 正则表达式匹配

摘要: 描述: 实现.和*号匹配,*表示前面字符0~无穷个,.表示任意一个字符。 要求全部,匹配,不是部分匹配。 解决: 思路类似最长公共子序列, dp[i][j] = dp[i - 1][j - 1], 如果s[i] == p[j] || p[j] == '.' dp[i][j - 2], 如果p[j] 阅读全文

posted @ 2017-12-28 11:15 willaty 阅读(5915) 评论(0) 推荐(0) 编辑

2017年12月27日

leetcode 64 最小路径和

摘要: 描述: 题目给个矩阵,每个点有个权重,左上到右下,只能往右或下走,求最小路径。 解决: dp[i][j] = min(d[i -1][j], dp[i][j - 1]) + dp[i][j] 更新一遍即可,改为一维。 注意,在原数组的基础上改不是很好,自己定义个数组存就可以了。 阅读全文

posted @ 2017-12-27 13:22 willaty 阅读(174) 评论(0) 推荐(0) 编辑

2017年12月26日

leetcode 63 不同的路径2

摘要: 描述: 从左上角走到右下角,中间可能有若干阻碍; 题目给出一个矩阵,0表示可以走,1表示有障碍。 解决: 思路同第一题,只是如果上面或左边有障碍,自身不一定能走,注意些边界条件即可,复杂度仍是m*n。 为了防止和真正的路径1冲突,走过的障碍改为-1。 阅读全文

posted @ 2017-12-26 20:23 willaty 阅读(102) 评论(0) 推荐(0) 编辑

leetcode 62 不同的路径

摘要: 描述: m*n的矩阵,从左上角走到右下角,只能向下或向右走。 解决: 简单dp,dp[i][j]表示到i,j这点总共多少种路径。 dp[i][j] = dp[i][j - 1] + dp[i - 1][j],化为一维: 注意,1*1的化结果是1的,如果别的题目是0,初始化里i改为从1开始即可。 也可 阅读全文

posted @ 2017-12-26 15:45 willaty 阅读(134) 评论(0) 推荐(0) 编辑

2017年12月21日

python 协程

摘要: 简介: 线程和进程都是抢占式的,即系统调配,有一定时间片; 而协程则是程序自己安排执行顺序,可以主动让出CPU,系统是不知道的,在lua等脚本语言中都有机制。 使用协程的几种方法: yield 注意协程关键是程序自己安排执行顺序,函数可以通过yield让出执行权。 greenlet greenlet 阅读全文

posted @ 2017-12-21 17:43 willaty 阅读(166) 评论(0) 推荐(0) 编辑

上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 29 下一页

导航