leetcode 第 287 场算法比赛

作者: | 更新日期:

这天在医院住院,就没参加比赛,做了下,很简单。

本文首发于公众号:天空的代码世界,微信号:tiankonguse

零、背景

这次比赛的时候,我在医院住院,所以没参加比赛。

赛后做了下题目,非常简单,拼手速的时候到了。

一、转化时间需要的最少操作数

题意:给两个 24 小时进制的时间,给两个时间,问最少操作几次可以把第一个时间修改为第二个时间。

修改操作:每次可以增加四种时间: 1 分钟、5 分钟、15 分钟、60 分钟。

思路:将时间转化为从 0 点开始的分钟偏移量,求出两个时间的分钟差值,然后优先选择较大的分钟操作即可。

二、找出输掉零场或一场比赛的玩家

题意:给一个比赛的结果列表,结果中是两个选手谁赢谁输。
求没有输比赛的选手列表 以及 只输一场比赛的选手列表。
选手列表要求按地址顺序返回。

思路:map 统计每个选手输比赛的场数,找到输的场次为 0 和 1 的成员即可。

三、每个小孩最多能分到多少糖果

题意:给 n 个数字,数字代表一堆糖果的数量。
对于一堆糖果,可以拆分为任意子堆糖果。
现在有 K 个人分别领取一堆糖果,要求每人领的糖果的数量相同。
问每个人最多可以领取几个糖果。

思路:典型的二分题。

二分领取的糖果数量,判断是否满足即可。

四、加密解密字符串

题意:给一个字符加密规则,以及加密后的合法字符串。
给一个字符串,问加密后的字符串是什么, 以及解密后可能命中的合法字符串数量。

思路:加密比较简单,循环根据映射拼接字符串即可。
直接解密比较复杂,所以我们可以预处理输入的合法字符串,全部加密,统计每个解密输入字符串的答案接。

五、最后

这次比赛比较简单。

今天做了模拟比赛,第一次 30 分钟之前就做完了所有题。

不过排名已经没有前百名,大概是 130 名。

一次增加比赛分数的机会就这样错过了。

加油,算法人。

《完》

-EOF-

本文公众号:天空的代码世界
个人微信号:tiankonguse
公众号ID:tiankonguse-code

本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。

关注公众号,接收最新消息

tiankonguse +
穿越