类似Jump Game 的第一种解法,我们采用类似BFS的解法,还是BFS找最短路径的问题。
Monday, December 22, 2014
[LeetCode]Gas Station
这个问题的突破点就是如果在一个可以开始的station x开始,到了y发现没有办法前进了,那么在x和y之间所有的点开始都不可能过y。
Location:
Irvine, CA, USA
[LeetCode]Clone Graph
类似Copy List With Random Pointer的问题,难点在于遍历图比遍历List更加复杂,基本思路还是一样的,
Location:
Irvine, CA, USA
[Algorithm]Convert Expression to Reverse Polish Notation
在Evaluate Reverse Polish Notation中讨论过这个问题,普通式子转换成逆波兰式就要注意两点:第一,由于涉及的运算符都是双目的(不包括括号),运算符要放在第二个操作数后面;第二, 如果第二个操作数,由于运算符号的优先性,是一个表达式,就先写出表示第二个操作数的逆波兰式,之后加上操作符。
Location:
Irvine, CA, USA
[LeetCode]Evaluate Reverse Polish Notation
根据逆波兰式来算出表达式的值。首先说明一下逆波兰式,逆波兰式是巴普通表达式的中缀表达方法,例如,3 + 5 * 4, (3 + 5)* 4 替换成后缀表达式,逆波兰式不需要括号,且不会产生歧义。
Location:
Irvine, CA, USA
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],有以下三种情况:
Labels:
dynamic programming,
leetcode,
string
Location:
Irvine, CA, USA
[LeetCode]Wildcard Matching
非常类似Regular Expression Matching(以下简称REM)的题目,'? '代替了'.','*'直接变成了任意字符串,我们可以模仿REM的解法,用DP来做这一道题,三种情况:
Labels:
backtracking,
dynamic programming,
leetcode,
string
Location:
Irvine, CA, USA
Tuesday, November 4, 2014
[LeetCode]Regular Expression Matching
String问题的话,总是很容易想到DP。简单的正则匹配也可以用DP来做,不过在用DP之前,由于匹配模式的多种可能,其实我们也可以在解空间遍历所有可能的分支,然后根据需要的情况剪枝,当然backtracking不如DP高效,不过我们可以先试试这个方法。
Labels:
backtracking,
dynamic programming,
graph,
leetcode,
string
Location:
Irvine, CA, USA
Subscribe to:
Posts (Atom)