Monday, December 22, 2014

[LeetCode]Jump Game II

类似Jump Game 的第一种解法,我们采用类似BFS的解法,还是BFS找最短路径的问题。

[LeetCode]Jump Game


很简单题,一种解法是类似BFS,

[LeetCode]Gas Station

这个问题的突破点就是如果在一个可以开始的station x开始,到了y发现没有办法前进了,那么在x和y之间所有的点开始都不可能过y。

[LeetCode]Clone Graph

类似Copy List With Random Pointer的问题,难点在于遍历图比遍历List更加复杂,基本思路还是一样的,

[Algorithm]Convert Expression to Reverse Polish Notation

Evaluate Reverse Polish Notation中讨论过这个问题,普通式子转换成逆波兰式就要注意两点:第一,由于涉及的运算符都是双目的(不包括括号),运算符要放在第二个操作数后面;第二, 如果第二个操作数,由于运算符号的优先性,是一个表达式,就先写出表示第二个操作数的逆波兰式,之后加上操作符。

[LeetCode]Evaluate Reverse Polish Notation

根据逆波兰式来算出表达式的值。首先说明一下逆波兰式,逆波兰式是巴普通表达式的中缀表达方法,例如,3 + 5 * 4, (3 + 5)* 4 替换成后缀表达式,逆波兰式不需要括号,且不会产生歧义。

Saturday, December 20, 2014

[LeetCode]Reverse Words in a String

比较简单的一题, 用一个临时变量来存每一个word,然后append即可,O(n)时间,O(n)空间,每一次去取一个单词,注意handle有多个space情况即可,写代码的时候内部循环注意判断越界。

Wednesday, November 5, 2014

[LeetCode]Edit Distance

    仍然是String的题目,自然又想到DP的方法,两个String,二维DP。对于String s和p,[i,j]表示s的前i个char和p的前j个char的最短距离,对于[i,j],有以下三种情况:

[LeetCode]Wildcard Matching

    非常类似Regular Expression Matching(以下简称REM)的题目,'? '代替了'.','*'直接变成了任意字符串,我们可以模仿REM的解法,用DP来做这一道题,三种情况:

Tuesday, November 4, 2014

[LeetCode]Regular Expression Matching

    String问题的话,总是很容易想到DP。简单的正则匹配也可以用DP来做,不过在用DP之前,由于匹配模式的多种可能,其实我们也可以在解空间遍历所有可能的分支,然后根据需要的情况剪枝,当然backtracking不如DP高效,不过我们可以先试试这个方法。