获得徽章 27
- #每天一个知识点# leetcode每日一题:2734. 执行子串操作后的字典序最小字符串,贪心的题目,从题意看,只有a变成z字典序会变大,其他都会变小,所以,我们尽量在靠左的位置选择一段尽量长的来操作。具体的,首先找到第1个不是a的字符,如果找不到,证明都是a,那最佳的解法是把最后1个a改成z;其他情况,可以找到第1个不是a的字符,记录索引index,从这个位置开始向后遍历,如果不是a,就-1,直到结束,如果遇到a,就提前结束展开
评论点赞 - #每天一个知识点# leetcode每日一题:503. 下一个更大元素 II,单调栈的经典例题,本题有一个不一样的点在于,是个循环数组,所以我们可以复制1份数组,拼接起来,当然,不用真正复制,直接在下标这里做些简单处理既可
评论点赞 - #每天一个知识点# 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