摘要: 我的解法 字符串+指针,字符串为strs[0],指针指向字符串中第一个不是公共前缀的字符(或字符串末尾),比较时只需比较指针前的字符。 官方解法 方法1:扫描,分横向扫描和纵向扫描,容易理解。 方法2:分治法,LCP(s1,sn) = LCP(LCP(s1,sk),LCP(sk+1, sn)),再对 阅读全文
posted @ 2025-02-18 12:07 知白0212 阅读(8) 评论(0) 推荐(0)
摘要: 我的解法 和上一题联动,直接用字典解了。 官方解法 模拟罗马数字,做过上一题就很好理解这一题的解法了,即:如果小的数字在大的数字右边,那么就是正常的加法;如果小的数字在大的数字左边,那么改成减法(符号取反),然后求和。这样做效率很高,省去了字典中查找key的时间。 知识点 阅读全文
posted @ 2025-02-17 22:40 知白0212 阅读(6) 评论(0) 推荐(0)
摘要: 我的解法 感觉这题主要是理解题意,结合示例,从最高位开始向下判断即可。 对当前数字i和倍数mul: 如果为0,当前位无需附加字符,i++,mul/=10; 如果为4或9,用i*mul作为key在减法字典中查找字符,直接附加,i++,mul/=10; 如果不是4,9,0,检测可减去的最大值,然后减掉并 阅读全文
posted @ 2025-02-17 22:17 知白0212 阅读(3) 评论(0) 推荐(0)
摘要: 我的解法 无,枚举超时,受上一题的影响脑子拐到dp上了,然而这题容器的大小和上一轮的计算结果没有必然联系,因此应当不是适合dp的题目。 官方解法 双指针,看了一遍思路官方题解 评论区说的很好,“本质上是个贪心算法,贪心算法最大的难点在于证明其正确性”,明天来重写一遍这题,然后整理一下思路。 知识点 阅读全文
posted @ 2025-02-17 21:02 知白0212 阅读(10) 评论(0) 推荐(0)
摘要: 我的解法 无,没有做过动态规划的题目,这题是想了几小时后实在没做出,去看题解了。 官方解法 dp,先放个题解链接,回头把这道题重新用dp做一遍,再来看完整题解。 知识点 动态规划;正则表达式 阅读全文
posted @ 2025-02-16 16:28 知白0212 阅读(4) 评论(0) 推荐(0)
摘要: 我的解法 最简单肯定是字符串,不过题目里有要求写不用字符串的写法,想了一下就把个位数按顺序提取并存储,然后还原成数字,与x比较大小。 官方解法 官方解法提到我的方法可能有溢出风险,这个确实,做题的时候有点会忽略这个,实际生产中肯定要多考虑边界情况。 题解1是优化版,假设有原数x,反转数y,我们不断让 阅读全文
posted @ 2025-02-16 12:00 知白0212 阅读(7) 评论(0) 推荐(0)
摘要: 我的解法 先strip去除前后空格,然后依次读入字符,判断一下字符是否合法即可。加一个标记位begin,如果数字部分已经开始读入,那么再出现的'+'和'-'就不合法了。 官方解法 本题题目中没有特别强调只能在32位内处理,所以我直接用python的int()来解决了,其他语言可以像第7题中提到的一样 阅读全文
posted @ 2025-02-15 17:05 知白0212 阅读(8) 评论(0) 推荐(0)
摘要: 我的解法 作为字符串处理,把x转化为list,然后对数字部分进行反转,将反转后的字符串与整数边界的数字部分比较(正数与2147483647,负数与2147483648),然后根据比较结果输出答案。 官方解法 方法一利用类似栈的方法实现数字反转,在“入栈”前判断一下入栈后数字是否在范围内即可。 评论区 阅读全文
posted @ 2025-02-14 14:15 知白0212 阅读(14) 评论(0) 推荐(0)
摘要: 我的解法 第一反应是矩阵,不过感觉内存消耗太大了。 然后想到用切片,步长为2*numRows-2,然后第1个字符串和第numRows个字符串是单独的,其余字符串按照v型对称的关系两两交替合并,最后拼接成结果字符串。 官方解法 方法一就是二维矩阵。在此基础上,可以通过压缩矩阵来降低空间复杂度,把向矩阵 阅读全文
posted @ 2025-02-14 13:16 知白0212 阅读(4) 评论(0) 推荐(0)
摘要: 我的解法 找回文子串的对称轴。遍历s,对每个字符寻找以其为对称轴的最长回文子串即可。特别处理的是当s[i]=s[i+1]的时候,需要以s[i]为对称轴和以s[i],s[i+1]为对称轴分别寻找一次(存在"ccc"这种情况时,仅以s[i],s[i+1]为对称轴可能会漏掉回文子串)。 官方解法 方法一: 阅读全文
posted @ 2025-02-13 19:00 知白0212 阅读(21) 评论(0) 推荐(0)