leetcode 第 287 场算法比赛
作者:
| 更新日期:这天在医院住院,就没参加比赛,做了下,很简单。
本文首发于公众号:天空的代码世界,微信号:tiankonguse
零、背景
这次比赛的时候,我在医院住院,所以没参加比赛。
赛后做了下题目,非常简单,拼手速的时候到了。
一、转化时间需要的最少操作数
题意:给两个 24 小时进制的时间,给两个时间,问最少操作几次可以把第一个时间修改为第二个时间。
修改操作:每次可以增加四种时间: 1 分钟、5 分钟、15 分钟、60 分钟。
思路:将时间转化为从 0 点开始的分钟偏移量,求出两个时间的分钟差值,然后优先选择较大的分钟操作即可。
二、找出输掉零场或一场比赛的玩家
题意:给一个比赛的结果列表,结果中是两个选手谁赢谁输。
求没有输比赛的选手列表 以及 只输一场比赛的选手列表。
选手列表要求按地址顺序返回。
思路:map 统计每个选手输比赛的场数,找到输的场次为 0 和 1 的成员即可。
三、每个小孩最多能分到多少糖果
题意:给 n 个数字,数字代表一堆糖果的数量。
对于一堆糖果,可以拆分为任意子堆糖果。
现在有 K 个人分别领取一堆糖果,要求每人领的糖果的数量相同。
问每个人最多可以领取几个糖果。
思路:典型的二分题。
二分领取的糖果数量,判断是否满足即可。
四、加密解密字符串
题意:给一个字符加密规则,以及加密后的合法字符串。
给一个字符串,问加密后的字符串是什么, 以及解密后可能命中的合法字符串数量。
思路:加密比较简单,循环根据映射拼接字符串即可。
直接解密比较复杂,所以我们可以预处理输入的合法字符串,全部加密,统计每个解密输入字符串的答案接。
五、最后
这次比赛比较简单。
今天做了模拟比赛,第一次 30 分钟之前就做完了所有题。
不过排名已经没有前百名,大概是 130 名。
一次增加比赛分数的机会就这样错过了。
加油,算法人。
《完》
-EOF-
本文公众号:天空的代码世界
个人微信号:tiankonguse
公众号ID:tiankonguse-code
本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。