
获得徽章 27
- #每天一个知识点# leetcode每日一题:3067. 在带权树网络中统计可连接服务器对数目;本题的关键需要理解什么是无根带权树,不然无从下手:无根带权树没有环,如果有n个节点,就有n-1条边;理解了这个,再枚举每个点作为根节点(就是题目中说的连通器c)既可。1点赞
- #每天一个知识点# leetcode每日一题:1103. 分糖果 II,本题数据量不大,可以直接模拟,当然,本意应该是让你使用高斯求和方式求出总共分了k人次,然后用高斯求和求得每个人分得的糖果,注意最后1人分的糖果可能不满足等差数列,需要用总数减去前面总和的方式评论点赞
- #每天一个知识点# leetcode每日一题:575. 分糖果;直接贪心,尽量选择type不一样的,使用1个set来存储已经选择的类型,用于判断这种类型是否被选择过;注意,如果达到n/2,就证明已经选到了最多的情况,此时不用再往后遍历了等人赞过评论5
- #每天一个知识点# leetcode每日一题:2928. 给小朋友们分糖果 I;看到是简单题,我就直接模拟了,不过看了题解,容斥原理的数学解法很精彩,不过今天是六一儿童节,保持简单,那就直接模拟吧,给6个月开个头赞过评论2
- #每天一个知识点# leetcode每日一题:2965. 找出缺失和重复的数字,只想ac的话,直接模拟既可;如果要降低空间复杂度,一种可能得思路是,对于整个结果再异或一遍[1, n*n],这样,只出现1次的数就抵消了,未出现的数出现了1次,已经出现了的数,出现了3次,异或计算等效1次,可以通过再分2组的形式来找到这2个数,但是,如何确定哪个数出现1次,哪个数出现3次呢?展开评论点赞
- #每天一个知识点# leetcode每日一题:找出出现至少三次的最长特殊子字符串 II;题目看了好几遍都没看出来跟昨天题目有什么区别,看了评论区才知道数据范围有微小差异,直接用昨天的代码AC了;不过,既然能有2道题,证明存在1种更加暴力的解法,使得昨天的数据范围可以过,而今天的数据范围过不了,想了一会儿也没想到,算了,就这样吧评论点赞
- #每天一个知识点# leetcode每日一题:2981. 找出出现至少三次的最长特殊子字符串 I;由于特殊字符串仅由相同字符组成,且字符集合是小写字母,所以可以用1个数组来记录每个字母连续出现的个数列表,例如字符串 bbab,a对应的个数列表是[1],b对应的个数列表是[2,1],获取到每个字符对应的个数列表后,剩下就是要求出出现3从的最大字符,此时需要分类讨论:1、至少有1个列表时,取最长的,假设长度为k,那么单独就可以分成3个长度为k-2的连续子串;2、至少有2个列表时,可以用上面的方法取,也可能是min(k1-1, k2),然后2种情况取max;3、至少有3个列表时,除了上面2种取法,还可以用 min(k1, k2, k3),其实就是k3,来组成3个子串;综上,所有情况取max后,就是所求答案,注意,如果求得0时,需要返回-1展开赞过12
- #每天一个知识点# leetcode每日一题:2028. 找出缺失的观测数据;比较单纯的数学题,通过 sum = mean * (m + n) 计算出总和,再减去rolls数组的和,就是剩余确实观测数据的和;由于数值只能1-6,所以 sum < n || sum > 6 * n 就不可能构造出来;可以构造时,计算出向下取整平均値avg,以及剩余的left,left肯定在[0, n)之间,所以构造答案至少有1种可以是:left个avg+1,以及n-left个avg展开赞过评论1
- #每天一个知识点# leetcode每日一题:1738. 找出第 K 大的异或坐标值;利用前缀和的思想,可以递推计算出矩阵的每个“值”:val[i+1][j+1] = val[i][j+1] ^ val[i+1][j] ^ val[i][j] ^ matrix[i][j]; 具体处理上,可以新建1个(m+1)*(n+1)的矩阵,这样方便处理第1行和第1列;在求最大的第k个数时,可以维护1个小根堆,超过k个值则移除队首,那么处理完成后,队首就是第k大的数展开等人赞过26