LeetCode
文章平均质量分 76
ww32cc
这个作者很懒,什么都没留下…
展开
-
LeetCode Wildcard Matching DP/贪心
这道题按理来说应该是Regular Expression Matching的简单版,但是测试数据较多较复杂,用普通的dfs会超时,常规dp会超内存,因此需要进行额外的处理。 方法一:DP 常规DP使用二维数组表示s中前i个字符和p中前j个字符的匹配情况,但其实存在冗余,具体可以观察动态转移方程: 其实当前状态至多与前一轮的状态相关,将i作为外层循环的话,要求解,只需,令表示前一轮(s原创 2015-12-19 22:09:16 · 918 阅读 · 0 评论 -
LeetCode Linked List Cycle II
题目描述:Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Note: Do not modify the linked list. 若存在环则输出环的起点,若不存在则输出NULL。由于是在判断环的基础上输出环的起点,因此仍使用Linked List C原创 2015-11-15 19:23:26 · 435 阅读 · 0 评论 -
LeetCode Longest Valid Parentheses 括号匹配
括号匹配问题一般的处理方式有两种:①使用栈的push/pop模拟;②给括号赋予正负的分值(+1/-1),从左到右计算分数之和。一个合法的串中任意位置的分数不会小于0(左括号数大于等于右括号)。 题意:给定一个由“(”和")"组成的字符串,求最长合法子串的长度。 栈一般用来判定括号序列是否合法,这里使用第二种方法。从左到右扫描一遍,遇到分数小于0则跳过该位置,从下一个位置起继续向右扫描,遇到分数原创 2015-12-06 20:51:25 · 507 阅读 · 0 评论 -
LeetCode Largest Number 贪心
将数组中的元素进行重排,组成最大的数。 如果只有两个数,可以简单判断:,使用贪心,将数组中的元素按照上述比较规则进行降序排序,进行拼接即为所求。证明如下: 假设按照贪心得到的最优解为:(其中),若存在解(和交换位置)比更优。令和之间一共位,则有:原创 2016-02-10 22:03:41 · 518 阅读 · 0 评论