LeetCode刷题记录-Part3

本篇是该系列第三篇,第一篇第二篇的链接在此。本篇将介绍Trie Tree 和 Union Find。两者都是很常见的树状数据结构。

这篇应该是LeetCode刷题系列的最后一篇,本来还打算包含 segment tree 和 topological sort 的介绍,但是后来发现这两个部分的题目数量是真的少,没必要写出来。至于之前还计划整理一篇位运算的相关操作,但是想了想这东西在工作中的实际运用,也被删除了。

接下来估计会开 system design 系列。这东西在北美找全职也是要准备的,之前还自以为刷题什么的就可以了。

More

从代码角度分析动森大头菜价格走势

首先感谢进行解包的大佬Ninji。本文只是对解包代码进行粗略的解读并加以分析。

解包代码大体可分为三个阶段,分别是随机数生成阶段、价格预测阶段和价格计算阶段。

随机数生成阶段–梅森旋转算法

梅森旋转算法,Mersenne twister,简写为MT。在C++11中的随机数库中,有一个随机数生成引擎函数 std::mt19937,这里的mt就是梅森旋转算法的简写。

More

LeetCode刷题记录-Part2

本篇是该系列第二篇,第一篇地址见此。本篇还是数组篇,主要介绍各种常见算法的灵活使用,具体为桶排序、环检测算法、单调栈和BFS,并主要针对排序和查找类题目。

这个系列的上一篇是近两个月前写的,这篇的构思在上个月就已经想好了,但是一直拖到现在才开始动笔,实在不该。但是在我重新梳理本篇的结构时,重新审视了之前刷题的代码,发现人终归是会遗忘的,有些题的思路已经忘记了。所以这里笔者提醒正在刷题的各位,一定要养成定期温习之前刷的题目,这里并不是指重新敲一遍,而是在脑海中过一遍题目的解题思路和实现逻辑。

至于怎么温习,我给出两个建议。

More

HashCode 2020

Hash Code 是由Google举办,并且每一年举办一次的大型编程比赛。今年的比赛官网

关于最终比赛结果,在一共10724份提交代码的小组中,我们最终积分是两千四百多万分,具体排名为2100名。感谢小组内所有大佬的付出,让我们4个小时的努力有所回报。

今年的比赛题目和数据集见此。该仓库包含今年的练习题目与正式题目。此篇文章主要陈述正式比赛题目中的数据集b和d的解法。

至于为什么只写这两个数据集的解法,因为是我写的。但是关于d的算法在数据集d上的实现并不好,然而在f上的实现超出预期。

More

LeetCode刷题记录-Part1

最近在找实习刷LeetCode,所以开了这么一个系列。一是巩固自己的记忆;二是发出来我的解题思路或者我找到的认为比较好的解题思路,想让大家集思广益,分析是否有更好的解法。熟人直接微信或者qq小窗即可,不熟的见上方邮箱。这个系列估计会在我找到全职工作后才会停止更新。

我觉得刷LeetCode最大的乐趣并不在于你WA了多次后迎来AC,或者一遍AC,而是AC后去讨论区,看看其他人的代码是怎么写的?看看有没有和你不一样的解题思路?看看其他人是怎样优化他们的代码?看看他们的编码方式有哪些值得学习。这些才是我认为LeetCode上最有用的地方。

More

前方乃是未踏之旅

世界正以前所未有的巨大幅度从远处逼近。 --三岛由纪夫

前方乃是未踏之旅

这是Fate/go国服三周年的标题,作为忠实的“月球人”,这个游戏已然陪我度过了1000天整,凑巧的是,这第1000天,也是我远赴大洋彼岸的日子。

现在是二〇一九年八月十七日晚,再过十二个小时,我就登上了前往华盛顿的飞机,开始人生新的篇章。此时我正在北京首都机场附近的酒店中写下这篇文章,望多年之后的某个闲暇之余,我无意识的再次翻到它,看看这个曾经稚嫩的自己,看看这颗是否依旧执着的心。

More

毕设填坑笔记-Git lfs的使用

自从自己拟了这个毕设后,感觉自己把自己坑的很惨,上次训练模型把电脑烧了后,总是能碰上奇奇怪怪的问题,所以打算开个新篇幅来记录我是如何填上毕设路上的自己给自己挖的坑。

我的毕设选题是关于用GAN生成图像方面的,为了记录中间的过程,我打算把每次训练生成的epoch都存下来;同时还想用git来管理代码版本,这时摆在我眼前的首要问题就是如何处理图片这些大文件。

使用一些开源的框架和成熟的模型,可以从一定程度上减小自己所需要的训练集体积,但是招架不住每次 pull/push 时所面对的动辄几百兆的传输列表,于是便在网上找到了git基于大文件传输的扩展 – git lfs(Large File Storage)

More