第一次打leetcode周赛,没什么经验,双周赛,和单周赛都通过了3/4道题。

第 23 场双周赛

AC:3/4
排名:730 / 2044

本次题目比较简单,感觉很容易Ak,但是我在第三题上耽误了好多时间,导致最后一题没来得及写。

5360. 统计最大组的数目

给你一个整数 n 。请你先求出从 1 到 n 的每个整数 10 进制表示下的数位和(每一位上的数字相加),然后把数位和相等的数字放到同一个组中。

请你统计每个组中的数字数目,并返回数字数目并列最多的组有多少个。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-largest-group
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

第一题送分题,用哈希表即可

5362. 构造 K 个回文字符串

给你一个字符串 s 和一个整数 k 。请你用 s 字符串中 所有字符 构造 k 个非空 回文串 。

如果你可以用 s 中所有字符构造 k 个回文字符串,那么请你返回 True ,否则返回 False 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/construct-k-palindrome-strings

第二题找规律题,找出每个字符串可以构造出回文字符串的数目范围即可,原始字符串的排列没有用。
最多肯定是字符的个数,每个字符一个。
然后就分析每个字符是单数还是双数,假如是单数的,那么至少要有一个回文字符串。因为他不可能和其余的单数字符组成一个回文字符串,单数可以和任意多的双数字符的组成回文字符串。故只看单数的
所以范围是:字符个数为单数的个数~总字符个数

5361. 圆和矩形是否有重叠

给你一个以 (radius, x_center, y_center) 表示的圆和一个与坐标轴平行的矩形 (x1, y1, x2, y2),其中 (x1, y1) 是矩形左下角的坐标,(x2, y2) 是右上角的坐标。

如果圆和矩形有重叠的部分,请你返回 True ,否则返回 False 。

换句话说,请你检测是否 存在 点 (xi, yi) ,它既在圆上也在矩形上(两者都包括点落在边界上的情况)。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/circle-and-rectangle-overlapping

这个题很恶心,耽误了我很多时间。
我是这么做的,首先把原移动到原点,然后矩形也移动。

然后判断是否跨越了坐标轴。假如跨越了就判断。
1.如果跨越了x,就判断x1>r or x2<-r? 如果是,就不重合
2.y同理

如果不跨越坐标轴,就判断,四个角到坐标远点的距离(圆心)是否大于半径
xixi+yiyi>r*r 如果大于则不重合

5363. 做菜顺序

一个厨师收集了他 n 道菜的满意程度 satisfaction ,这个厨师做出每道菜的时间都是 1 单位时间。

一道菜的 「喜爱时间」系数定义为烹饪这道菜以及之前每道菜所花费的时间乘以这道菜的满意程度,也就是 time[i]*satisfaction[i] 。

请你返回做完所有菜 「喜爱时间」总和的最大值为多少。

你可以按 任意 顺序安排做菜的顺序,你也可以选择放弃做某些菜来获得更大的总和。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reducing-dishes

没做出来,我就不嫌丑了,由于上一题耽误了我很多时间,只剩9分钟了,最后9分钟写了一个暴力的,但是没通过,超时了,遗憾没有首战ak。

第 183 场周赛

AC:3/4
Rate:407 / 3754

5376. 非递增顺序的最小子序列

给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。

如果存在多个解决方案,只需返回 长度最小 的子序列。如果仍然有多个解决方案,则返回 元素之和最大 的子序列。

与子数组不同的地方在于,「数组的子序列」不强调元素在原数组中的连续性,也就是说,它可以通过从数组中分离一些(也可能不分离)元素得到。

注意,题目数据保证满足所有约束条件的解决方案是 唯一 的。同时,返回的答案应当按 非递增顺序 排列。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-subsequence-in-non-increasing-order

送分题,排序即可。从前往后累加,一直到total-sum>剩下的sum

5377.将二进制表示减到 1 的步骤数

给你一个以二进制形式表示的数字`s`。请你返回按下述规则将其减少到 1 所需要的步骤数:

*   如果当前数字为偶数,则将其除以 2 。

*   如果当前数字为奇数,则将其加上 1 。


题目保证你总是可以按上述规则将测试用例变为 1

送分题:没有什么好解释的,转换为10进制然后计算,应该有更好的办法,但是比赛的时候就直接这么粗暴了。

5195. 最长快乐字符串

如果字符串中不含有任何 'aaa','bbb' 或 'ccc' 这样的字符串作为子串,那么该字符串就是一个「快乐字符串」。

给你三个整数 a,b ,c,请你返回 任意一个 满足下列全部条件的字符串 s:

s 是一个尽可能长的快乐字符串。
s 中 最多 有a 个字母 'a'、b 个字母 'b'、c 个字母 'c' 。
s 中只含有 'a'、'b' 、'c' 三种字母。
如果不存在这样的字符串 s ,请返回一个空字符串 ""。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-happy-string

细节题,思路一下就能想到,但是写的时候总出错。取字符最多的两个,最少的一个。记得每次取之后更新字符数排名。

5379. 石子游戏 III

Alice 和 Bob 用几堆石子在做游戏。几堆石子排成一行,每堆石子都对应一个得分,由数组 stoneValue 给出。

Alice 和 Bob 轮流取石子,Alice 总是先开始。在每个玩家的回合中,该玩家可以拿走剩下石子中的的前 1、2 或 3 堆石子 。比赛一直持续到所有石头都被拿走。

每个玩家的最终得分为他所拿到的每堆石子的对应得分之和。每个玩家的初始分数都是 0 。比赛的目标是决出最高分,得分最高的选手将会赢得比赛,比赛也可能会出现平局。

假设 Alice 和 Bob 都采取 最优策略 。如果 Alice 赢了就返回 "Alice" ,Bob 赢了就返回 "Bob",平局(分数相同)返回 "Tie" 。



来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/stone-game-iii

真心不会。。。半个小时也没写出来,样例都差一个没过去。。。

总结:还是练得少,好多题都是有类似的,但是我没做过,一下子想不起来。 争取下次AK!


北语张益达
6 声望4 粉丝