复盘|第287场周赛
转化时间需要的最少操作数
【贪心】从大到小枚举。
找出输掉零场或一场比赛的玩家
【哈希表】用一个哈希映射记录每个玩家输掉的次数,对于每个键值对,键表示一名玩家,值表示该玩家输掉比赛的次数。遍历数组,遍历到第i项(winner_i, loser_i),如果不存在就加入哈希映射,对应的值为0,随后将loser_i对应的值加一。
每个小孩最多能分到多少糖果
【二分查找】每堆糖果越多,能分出来的子堆也越少,ans = ⌊Σcandies/k⌋。判断每个小孩分到i个糖果时是否满足要求。
二分答案,由于 x 越大 sum 越小,而bisect的key 需要一个增函数(非减)。
加密解密字符串
【哈希表】values允许有相同的字符串,因此不同字符串加密后的结果可能一致,一个字符串中揭秘出来的结果也可能不唯一,逆向思考,加密dic每个字符串,并用哈希表记录每个加密后字符串的出现次数,每次调用decypt时,返回哈希表中word2的出现次数。