leetcode 2020春季算法比赛
这次比赛有点ACM的味道。 零、背景 2020年4月18日参加了 leetcode 举办的 2020年春季算法比赛。 结果比赛期间有人来看房子。 原因是我在深圳合租的房子有个室友抽签抽到公租房,搬出去了。 几个同事预约这天下午来看房,只能抽一段时间做几道题了。 比如在三点半的时候,有个同事过来了。 五点左右,又有个同事来看房。 这看房大概浪费了一个小时半,我这敲代码速度,题肯定做不完了。 不过我还是尽量的去做题,做了四道题,看排名是第 88 名,没进去前 50 名,比较遗憾。 PS:刚开始比赛时我随机看的第四题,一看大水题,敲完发现提交leetcode的反馈完全看不懂,又点了几下提交,被罚几次。 后来只能从第一题开始做,做到后面再重写第四题被卡时间了, map换成unorder_map 就过了。 下面来看看这些题吧。 一、拿硬币 题意:有 n 堆硬币,每次可以从一堆中拿1个或者2个。 问最少需要拿几次? 思路:每堆独立。 对于每一堆,肯定是尽量拿两个,如果到最后还剩一个就只能拿一个。 使用数学语言就是偶数除2,奇数除2向上取整。 合在一起就是每堆除2向上取整,然后求和。 二、传递信息 题意:给一个有向图,起点在 0, 每次可以选择一条边进行移动。 问移动 k 次后到达节点 n - 1 的路径数。 思路: 动态规划题,我喜欢的题型。 暴力方法: 每移动一步