![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
记录刷leetcode时一些想法
哈利法
这个作者很懒,什么都没留下…
展开
-
11 盛最多水的容器
题目链接 双指针,学到了!原创 2020-10-11 11:38:50 · 85 阅读 · 0 评论 -
10 正则表达式匹配
题目链接 对于该题,最简单的解法应该是动态规划。对于具体思路网上的解答很多。答题思路就是设置一个二维数组,第i,j位置代表p的前i个字符子串与s的前j个字符子串是否匹配。对于具体递推公式这儿不再赘述。 但是我们需要注意一点。对于一个m长的p和n长的q。我们需要设置的二维数组大小为m+1,n+1(二维数组行列可互换,即行代表p或s皆可)。为什么要加1,是因为对于m长的p,我们需要考虑p的空子串。即需要考虑s匹配空的情况。同理,我们需要考虑s为空,可以匹配p的情况。举个栗子,我们需要考虑s为空,可以匹配p为.*原创 2020-10-11 10:48:34 · 142 阅读 · 0 评论 -
3 无重复字符的最长子串
题目链接 注意两点: 需要多次判重,就考虑使用unordered_map(哈希实现),或者map(红黑树)。 如果集合元素固定且数量不多,可直接使用桶方法。 代码如下: class Solution { public: int lengthOfLongestSubstring(string s) { int maxlen = 0, start = 0; vector<int> a(128,-1); for(int i = 0; i &l原创 2020-10-09 20:08:18 · 87 阅读 · 0 评论 -
7 整数反转
题目链接 记录两点: 负数也可以使用%10和/10。 C++中INT_MAX和INT_MIN代表最大int和最小int。 最后,附上代码: class Solution { public: int reverse(int x) { int num = 0; while(x != 0) { int d = x % 10; x /= 10; if (num > INT_MAX/10 || (原创 2020-10-09 19:55:16 · 89 阅读 · 0 评论