
C++
文章平均质量分 62
helowow
这个作者很懒,什么都没留下…
展开
-
10. Regular Expression Matching
10. Regular Expression Matching题意解法代码算法复杂度 题目链接:10. Regular Expression Matching 题意实现正则表达式中对.和*的支持。点号匹配任意单个字符,星号匹配任意个它前面的字符,包括0个。 解法可用动态规划求解,match[i][j]表示模式p从0到i-1的子串能原创 2017-12-11 00:32:03 · 205 阅读 · 0 评论 -
22. Generate Parentheses
22. Generate Parentheses题意解法代码算法复杂度 题目链接:22. Generate Parentheses 题意给定整数n,找出n对括号的所有合法组合。 解法在合法的括号序列中,先有的左括号才有右括号,需要记录的量有两个:剩余的能添加的左括号的数量nleft以及能继续添加的右括号的数量nright,假设左括号数原创 2018-01-13 15:24:40 · 175 阅读 · 0 评论 -
445. Add Two Numbers II
445. Add Two Numbers II题意解法代码算法复杂度 题目链接:445. Add Two Numbers II 题意给出由链表表示的两个整数,求用链表表示的这两个数的和。 解法先将这两条链表转换成两个数组,然后从这两个数组最后位置出发求和,将结果保存在第三个数组中,最后将第三个数组翻转成链表即可。 代码c原创 2018-01-13 17:40:16 · 167 阅读 · 0 评论 -
32 Longest Valid Parenthese
32 Longest Valid Parenthese题意解法代码算法复杂度注意 题目链接:32 Longest Valid Parenthese 题意给出一个由字符’(‘或’)’组成的字符串,求出该字符串中最长合法括号串的长度 解法求符合要求的最长连续子序列,可用动态规划,L[i]表示以第i个位置结尾的最长合法括号串的长度,则原创 2017-12-07 22:00:40 · 308 阅读 · 0 评论 -
11. Container With Most Water
11. Container With Most Water题意解法代码算法复杂度 题目链接:11. Container With Most Water 题意给定一个整数数组heights,构造一组垂直于x轴的线段,两个端点分别是(i,0)与(i,heights[i]),求这些线段中任选两条与x轴形成的容器能盛水的最大容量。 解法用left和r原创 2018-01-12 16:26:15 · 167 阅读 · 0 评论 -
7. Reverse Integer
7. Reverse Integer题意解法坑代码算法复杂度 题目链接:7. Reverse Integer 题意将给定的int型整数翻转,不包括负号,如果整数以0结尾,反转后开头的0不保留。 坑翻转的结果可能超过int的表示范围,如果超出范围返回0。 解法先将整数转变为它的绝对值,每次将整数的末位数字压入一个队列中,然后原创 2018-01-12 15:20:41 · 155 阅读 · 0 评论 -
2. Add Two Numbers
2. Add Two Numbers题意解法代码算法复杂度 题目链接:2. Add Two Numbers 题意给出两条链表,链表的每个节点存储一个个位数,每条链表各表示一个倒着的整数,求表示这两个数的和的链表。 解法为了代码简洁,可以采用冗余节点,因为如果不采用冗余节点,新链表的第一个节点必须单独创建,而且创建方式与循环体内的方法一原创 2018-01-11 17:04:56 · 168 阅读 · 0 评论 -
3. Longest Substring Without Repeated Characters
3. Longest Substring Without Repeated Characters题意解法代码算法复杂度 题目链接:3. Longest Substring Without Repeated Characters 题意求一个字符串中最长的不包含重复字符的子串的长度。 解法开一个数组记录每个字符上一次出现的位置,要界定字符是否重复原创 2018-01-12 14:31:05 · 231 阅读 · 0 评论 -
25 reverse nodes in k groups
25 reverse nodes in k groups题目链接题意给一个链表和一个数字k,要求从链表头开始,每次翻转k个节点,若不足k个节点则不翻转 思路用一个节点指针currentHead指向每次要翻转的k个节点的第一个,另一个节点指针boundary用于向后搜索到要翻转的k个节点后的第一个节点,然后进行k次操作,每次操作中先用temp保存待翻转的第二个节原创 2017-09-13 21:33:01 · 233 阅读 · 0 评论 -
3Sums
15. 3Sums题目链接题意解法代码算法复杂度要点 题目链接:15. 3Sums 题意给出一个数组,求出该数组中所有和为给定值的三元组的集合 解法在有序数组中可以从用两个端点开始的两个下标来逐步逼近目标和,因此可以先将给定数组排序,然后每次固定一个数,在剩下的区间用左右两个下标来逼近给定和。 代原创 2017-09-23 17:06:13 · 487 阅读 · 0 评论 -
4 Sums
18. 4 Sums题意解法代码要点 题目链接:18. 4Sums 题意给出一个数组,求出该数组中所有和为给定值的四元组的集合解法4个变量比较难控制,受第15题3Sums的启发,结合分而治之的思想,可以遍历给定数组,每次相当于固定了第一个数,对后面的部分使用3Sums解法,算法时间复杂度为O(n^3)3Sums链接原创 2017-09-23 17:39:23 · 240 阅读 · 0 评论 -
10 Regular Expression Matching
10 Regular Expression Matching题意解法代码算法复杂度 题目链接:10. Regular Expression Matching 题意给出一个字符串和一个由字母和'.'以及'*'组成的简单正则表达式,判断是否匹配解法由于正则表达式与字符串是否匹配跟正则表达式子串与字符串的匹配情况有关,所以想到用动态原创 2017-11-09 11:24:06 · 189 阅读 · 0 评论 -
718 Maximum Length of Repeated Subarray
718 Maximum Length of Repeated Subarray题意解法代码算法复杂度关键 题目链接:718 Maximum Length of Repeated Subarray 题意给出两个整数数组A和B,求出两个数组中最长重复子数组的长度,注意,子数组要求连续,子序列可不连续解法用数组dp[i][j]表示原创 2017-11-09 11:55:16 · 172 阅读 · 0 评论 -
698 Partition to K Equal Sum Subsets
698 Partition to K Equal Sum Subsets题意解法代码算法复杂度 题目链接:698 Partition to K Equal Sum Subsets 题意给定一个整数数组,问能否将这个数组划分成k个不相交并且元素之和相等的子数组解法将数组分成和相等的k个子数组,首先数组的所有元素之和必须得能被k整原创 2017-11-29 22:28:13 · 370 阅读 · 0 评论 -
472 Concatenated Words
472 Concatenated Words题意解法代码算法复杂度注意 题目链接:472 Concatenated Words 题意给定一个字符串数组(vector),要求找出当中所有能被数组中其他多于一个字符串组成的字符串解法构建字典树,每个字符串对应字典树中的一条路径,这条路径不必以叶子节点结尾,因为不同字符串可能共享原创 2017-12-02 23:46:56 · 451 阅读 · 0 评论 -
44. Wildcard Matching
44. Wildcard Matching题意解法代码算法复杂度注意 题目链接:44. Wildcard Matching 题意实现通配符?和*,?匹配任意单个字符,*匹配任意字符串,包括空串。题目与 10. Regular Expression Matching很相似,连测试样例都是一样的, 第10题链接,不同之处在于:第10题中*只能匹配0个原创 2017-12-10 23:18:19 · 206 阅读 · 0 评论 -
493. Reverse Pairs
493. Reverse Pairs题意解法代码算法复杂度 题目链接:493. Reverse Pairs 题意找出给定数组中重要逆序的对数,重要逆序定义如下:i解法最简单的方法就是暴力穷举,对于每个位置i都遍历一遍前面的元素,看看有没有构成逆序的元素,但是这种方法肯定是会超时的。 第二种方法是用二叉搜索树,定义树节点为拥有字段value和cou原创 2018-01-07 20:07:04 · 368 阅读 · 0 评论