
获得徽章 27
- #每天一个知识点# leetcode每日一题:520. 检测大写字母;本题可以模拟,虽然难度是简单,但是想要写的优雅,一点也不简单,可以用下面的规则来涵盖所有的情况:1、长度为1,一定合法;2、首字母小写,第2个字母大写,不合法;3、从第3个字母开始,后续每个字母必须跟第2个字母保持一致大小写,否则不合法等人赞过48
- #每天一个知识点# leetcode每日一题:2288. 价格减免;整体而言,直接模拟既可,也有几个注意点:1、所有的价格是正整数且不含前导0,这个限制条件让数字的判断简化了很多;2、所有的价格最多为10位数字,所以可能会超过int的范围,需要使用Long来接收等人赞过评论4
- #每天一个知识点# leetcode每日一题:522. 最长特殊序列 II,这题之前就做过且写过题解,今天做还是这个思路,优化了部分代码的写法。关键点在于,这个最长特殊序列,一定是某个完整的字符串本身。证明的方法可以用反证法,假设这个最长特殊序列是strs[x]的严格子序列(至少去掉1个字符)u,那么既然u不是任意一个其他字符串的子序列,那么比u更长的strs[x]一定也满足不是任意一个其他字符串的子序列,那么为什么这个最长特殊序列不是strs[x]呢?在这个基础上,我们再结合双指针来判断1个字符串是否是另外1个字符串的子串,本题就迎刃而解了展开评论点赞
- #每天一个知识点# leetcode每日一题:419. 甲板上的战舰;可以定义一下战舰头:如果是横向的战舰,头就是最左边的节点,如果是纵向的战舰,头就是最上面的节点,这样,题目就可以转换成求战舰头的数量,我们从上往下、从左往右遍历的时候,如果遇到X,那就看左边或者上面的节点是不是战舰(注意不要越界),如果都不是,那么当前就是战舰头,结果+1,否则当前虽然是战舰,但不是战舰头,就不统计展开赞过13
- #每天一个知识点# leetcode每日一题:881. 救生艇;可以直接贪心,对原始数组排序后,考虑最重的:要么单独1条船,要么跟最轻的共用1条船(当然,如果可能,也可以跟非最轻的1条船,不过这样的话,虽然这条船利用率更高了,但是最轻的无论跟谁1条船,利用率都更低的了,整体不会更好)赞过11
- #每天一个知识点# leetcode每日一题:3038. 相同分数的最大操作数目 I,直接模拟既可,注意遍历的时候index可以跟ans使用同一个变量,节约一个int的空间;大家过节愉快赞过评论1
- #每天一个知识点# leetcode每日一题:2938. 区分黑球与白球;可以直接贪心,一个可以简化思维的点是,移动后白球在左黑球在右,所以可以想象是把白球往左移,跟黑球往右移其实是等效的,这样就可以直接从前往后遍历原数组了赞过22