京鸿一丿

京口斜通江水流,斐回应上青山头。如此鸿禧逢七度,吾生幸亦几人同。

有那么一刻,我发现我不是人

超额达成!棋盘 & 人机游戏框架

看着 Ta 们在棋盘上疯狂地思考、对战厮杀,那么专注、那么乐此不疲; 而我,终于放空思绪,呆若木鸡。 有那么一刻,仿佛 Ta 们才是有生命的人。 快速预览 笔者做了两款框架:一款定义游戏规则,一款定义人机算法 前者实现了两个案例,井字棋 & 五子棋 后者实现了井字棋 AI,按计划下期才到五子棋 AI 本文介绍框架的基本使用 ...

我想找个下棋的对手

人机对战,从计划到实现

故事背景 那天是 2019 年秋天的星期日,天气真的不错,可一篇文章牢牢宅住了我 AlphaZero Explained 越看越热血,越看越痒痒,恨不得即刻动手实践一番。 可惜去年忙于换工作的事,无奈搁浅。 近期连续听了好几场游戏团队的分享,从游戏心理研究到 CG 特效,从大黄蜂变形算法到 RPG 实现,心底那股「做人机」的劲儿又上来了。 是时候「做个真正的了结」,实现一款「人...

数据规模小,回溯刚起

LeetCode 第 208 场周赛

12 分,350+ 名 题目 文件夹操作日志搜集器 经营摩天轮的最大利润 皇位继承顺序 最多可达成的换楼请求数目 T1. 文件夹操作日志搜集器 题目 每当用户执行变更文件夹操作时,LeetCode 文件系统都会保存一条日志记录。 下面给出对变更操作的说明: "../" :移动到当前文件夹的父文件夹。如果已经在主文件夹下,则 继续停留在当前文件夹 ...

动态规划不可怕,思路不清想到炸

LeetCode 第 207 场周赛

12 分,300+ 名 题目 重新排列单词间的空格 拆分字符串使唯一子字符串的数目最大 矩阵的最大非负积 连通两组点的最小成本 T1. 重新排列单词间的空格 题目 给你一个字符串 text ,该字符串由若干被空格包围的单词组成。每个单词由一个或者多个小写英文字母组成,并且两个单词之间至少存在一个空格。题目测试用例保证 text 至少包含一个单词 。 请...

果然:没有「本可以」,也就没有遗憾

LeetCode 第 206 场周赛

三题,知足了。 12 分,600+ 名 题目 二进制矩阵中的特殊位置 统计不开心的朋友 连接所有点的最小费用 检查字符串是否可以通过排序子字符串得到另一个字符串 赛后复盘 T1. 二进制矩阵中的特殊位置 题目 给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置...

战队赛求组团呀

LCCUP 2020 力扣杯 秋季编程大赛 个人赛

在快餐店打比赛还是很有趣,两个半小时,为了省电都使出「间隙性睡眠」的招数了,就当做练练白板编程也不错。 赛中只拿了 T1、T2,赛后补的 T3、T4。 T5 放弃,也不想花时间看了,本文只留下题目。 4 分,750+ 名 题目 速算机器人 早餐组合 秋叶收藏集 快速公交 追逐游戏 赛后复盘 T1. 速算机器人 题目 小扣在秋日市集发现了一...

测试用例不是吃素的

LeetCode 第 205 场周赛

下了三题,真实水平,每题都被罚时也是醉了。 13 分,1000+ 名 题目 替换所有的问号 数的平方等于两数乘积的方法数 避免重复字母的最小删除成本 保证图可完全遍历 赛后复盘 T1. 替换所有的问号 题目 给你一个仅包含小写英文字母和 '?' 字符的字符串 s,请你将所有的 '?' 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。...

思路要稳步推进,跨步太大会扯着

LeetCode 第 203 场周赛

本周周赛出的挺好的,每道题都需要在理解的基础上稍微转个弯。无奈 T3,T4 赛中没做出来,一闪而过的思路没有坚持,总想着一步到位:该了您内。 7 分,1100+ 名 题目 圆形赛道上经过次数最多的扇区 你可以获得的最大硬币数目 查找大小为 M 的最新分组 石子游戏 V 赛后复盘 T1. 圆形赛道上经过次数最多的扇区 题目 给你一个整数 n 和...

专项与坚持,做时间的朋友

LeetCode 第 33 场双周赛

难得 1 小时内 AK,难度不大,排名需要细心与手速。 18 分,250+ 名 题目 千位分隔数 可以到达所有点的最少点数目 得到目标数组的最少函数调用次数 二维网格图中探测环 赛后复盘 T1. 千位分隔数 题目 给你一个整数 n,请你每隔三位添加点(即 “.” 符号)作为千位分隔符,并将结果以字符串格式返回。 示例 1: 输入:n =...

以为的差一点,其实差得远

LeetCode 第 202 场周赛

痛苦的不是失败,而是「我本可以」。 更痛苦的不是「我本可以」,而是「自以为我本可以」。 本周的周赛比较适合上分,大神们都是手速场。自信以为能挺进 150,结果 T4 都没 AC,600 开外慢走不送…… 特此复盘,有感而记。 12 分,600+ 名 题目 存在连续三个奇数的数组 使数组中所有元素相等的最小操作数 两球之间的磁力 吃掉 N 个橘...

敏捷成长?

敏捷的思想,改变对成长的认知

瀑布式开发,研发周期长,跟不上业务发展、需求变化,风险高。 学习与成长犹如不断打磨自身,瀑布式的人生规划,时间跨度长,跟不上认知的累积、环境的变化,风险高。 难道人生就不需要规划吗?谁还不想早点成功?道理谁都懂……吗 敏捷的特点:快速响应变化,允许试错,小步快跑。 疫情席卷全球,往日繁华何时归?幸存下来的我们,故事还要继续,而剧本却已发生了改变。 既定的成长步调,不...

当「华容道」遇上位运算与广度优先搜索

借位运算解构棋子移动,BFS求解最短路径问题

譬如朝露,去日苦多。 本文以解经典开局「横刀立马」为例,基于广度优先搜索,通过位运算移动棋子,以 Java 语言实现程序解华容道。源码仓库 klotski。 横刀立马开局 索引 开篇 解题思路 精彩题解参考 本文思路比较 广度优先搜索 位运算与移动 代码框架 以终为...

一句话的设计模式

看一眼就快速回想起该设计模式的种种记忆

如题,实际上,我想这是很困难的。 除非——只是为了给自己做一个提醒,能够看一眼就快速回想起该设计模式的种种记忆。 下列是我之前在学习《大话设计模式》时做的笔记总结,当中有部分措辞来自其作者程杰。(非常感谢他为神秘的设计模式搭建了如此平滑的学习通道) 创建型 单例:只需一个实例时考虑。 工厂方法:一般先用工厂方法解决对象创建问题。 抽象工厂:当工厂方法无法满足多系列问题时...