LeetCode
文章平均质量分 69
zhaoqinmuxue
人无我有,人有我不做
展开
-
【LeetCode】10. Regular Expression Matching【动态规划&递归】
对于p字符串有点、字母、点*、字母*四种元素,点匹配任意一个字母,字母匹配相同的一个字母,点*匹配任意字母(可以是任意不同字母,例如.*匹配abc),字母*匹配连续任意个相同字母,值得注意的是*的任意包括0个。由于*可以匹配任意个,造成检验s和p是否完全匹配的时候难以确定究竟*匹配几个字母合适,这正是本题的关键点。题意简单粗暴,看一下原题,然后分析一下如何处理。Given an...原创 2019-02-08 23:54:48 · 1716 阅读 · 1 评论 -
【LeetCode】30. Substring with Concatenation of All Words题解
给定一个字符串s和很多相同长度的字符串words,这些字符串可以有相同的,任务是在s里找到一部分正好是words的全部字符串按任意顺序组合起来,输出符合条件的部分在s的起始位置。题意依旧是so easy,几句话搞定的事,初看的时候感觉复杂度好高,这得比到海枯石烂啊,偷偷看了下大佬的DA,分享一下两种解法。先贴原题。You are given a string, s, and a...原创 2019-02-16 23:55:09 · 130 阅读 · 0 评论 -
【LeetCode】32. Longest Valid Parentheses【栈&动态规划】
它的标题基本就是题目了,找出连续的最长有效括号的长度,再看一下原题的两个栗子就更明显了,尤其是第二个栗子中的()()部分,更是此题的一个关键,后面还会经常提起。这道题题意相当简单,思路相当简洁,代码相当简短,但是感觉想起来没有那么简单,做完有一种相当巧妙的感觉,所以分享出来。Given a string containing just the characters '(' an...原创 2019-02-17 17:46:51 · 221 阅读 · 0 评论 -
【LeetCode】42. Trapping Rain Water【双指针&栈】
n个非负整数,数值代表高度,问这样的形状能收集多少雨水。原题的图片有助于理解题意。Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.The...原创 2019-02-17 21:37:11 · 541 阅读 · 0 评论 -
【LeetCode】65.Valid Number【有限状态机&正则表达式】
任务只有一句话判断输入的数字是否合法。说真的,看了给的十几个例子我又百度了一下才最终弄清规则。特别需要注意的是诸如+.5和90.这样的数一开始以为不合法,提交错误后才知道是可以的,小数点前或者后可以没有数字。首先只想到了各种ifelse无限嵌套,顿时索然无味一点都不想写,所以以下是百度看到思想后再写的。(以我的代码风格肯定也不会用enum,直接012345就完事了)Validate if a...原创 2019-02-28 20:54:03 · 732 阅读 · 2 评论 -
【LeetCode】84. Largest Rectangle in Histogram【栈】
在直方图中找到面积最大的矩形的面积,第一眼看到此题就觉得和LeetCode的42题接雨水好像,最后也的确如此。原题如下Givennnon-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectan...原创 2019-03-16 23:00:59 · 186 阅读 · 0 评论 -
【LeetCode】85.Maximal Rectangle【单向栈&双向扫描】
在一个0和1组成的矩阵中寻找面积最大的矩形,初看和上一题思路没什么区别,但其实在实现上可以有另一种思路。原题如下:Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and return its area.Example:Input:[ ...原创 2019-03-21 22:45:21 · 295 阅读 · 0 评论 -
【LeetCode】87. Scramble String【分治法】
把一个字符串变成一颗二叉树,如果一个新字符串能由任意交换子树得到,则称为Scramble String。苦思冥想,自知不善于分治,故特别记录下来。如果两个字符串是Scramble String,则必然有它们的两个子串分别互为Scramble String,如此二分下去直到字串长度为1,就只需判断是否相等。能有这种分而治之的思想此题就非常简单了。for (int i = 1; i <...原创 2019-08-04 10:23:29 · 134 阅读 · 0 评论 -
【LeetCode】105. Construct Binary Tree from Preorder and Inorder Traversal
已知二叉树的先序遍历和中序遍历,构造该二叉树。一、逐个从头插入想到先序遍历就是常规二叉树的一种构造顺序,但是信息还不完全,挨个插入时,不知道待插入节点应该插在左子树还是右子树上。再借助中序遍历即可分辨,如果待插入节点在中序遍历中比当前节点靠前,就说明在左子树中,深入左子树继续判断,知道到达树的底端插入即可。还有一个问题是如何判断两个节点在中序遍历中的顺序关系,我想到了两种方法,一种是用二分...原创 2019-08-04 10:46:13 · 91 阅读 · 0 评论