- 博客(12)
- 收藏
- 关注
原创 [leetcode] dp
1-D DP: Climbing Stairs: Naive 就是sum[0]; if (n==0) sum[0]++; 然后climbstairs(n-1) climbstairs(n-2) public int climbStairs(int n) { if (n<=0) return 0; if (n==1) return 1;
2015-01-11 17:05:03
372
原创 [leetcode] math
permutation sequence (find kth permutation sequence) * 要知道每个position的数是k/(n-1)! * 用过的element要去掉,所以要新建一个list里面有一列数 *开始要k--来match list里面的element public String getPermutation(int n, int k) {
2015-01-11 13:22:56
362
原创 [leetcode] backtracking
79 Word Search (复杂度 exponential) :经典dfs & backtracking:在board的每个位置做dfs search, dfs用boolean[][] 做backtracking:base case:如果对了就return true; invalid || not match就return false public boolean exist(char[
2015-01-11 09:56:45
475
原创 算法复杂度总结
栗子:word break: 1. naive approach: O(2^n) iterate through the length of the string, and call recursively 每个字母间隙选择分开还是不分开,所以是2^n 2.dp:O(n^2) top-down || bottom-up bottom-up: 比较好想,两个for loop
2015-01-10 21:23:32
376
原创 dfs
一些dfs的集合: Symmetric Tree: 1. 左边val==右边val 2.左边的左边 same 右边的右边;左边的右边 same 右边的左边 public class Solution { public boolean isSymmetric(TreeNode root) { if (root==null) return true; r
2015-01-10 14:59:34
343
原创 [leetcode] Validate Binary Search Tree dfs
方法1: inorder traversal, 如果in order就是valid (用int[] 做publicly accessible place,就不能过min_value, 这样的话就要用arraylist,然后放null) 方法2: 按definition构建recursion, left: helper(root.left, min, root.val); right: help
2015-01-10 14:16:07
292
原创 [leetcode] Level Order Traversal
Level Order Traversal, 代表性的bfs 几个维护的量: 1. queue curLevel 2. queue nextLevel 3. List item 当前level的东西 /** * Definition for binary tree * public class TreeNode { * int val; * Tre
2015-01-10 14:05:21
298
原创 [leetcode] 133 clone graph bfs
bfs: 1. 一个HashMap来找对应的cloned node 2. 一个queue来装frontier 3. 一边建node一边连接node /** * Definition for undirected graph. * class UndirectedGraphNode { * int label; * List neighbors; *
2015-01-10 13:25:16
308
原创 [leetcode] 130 surrounded regions dfs bfs
这题的做法: 1. 把外面一圈的每一个o都traverse一下(bfs,dfs 都可以),把它们mark成第三种字母y 2. 把整个board跑一遍,看到o就变成x, 看到y就变成o 要注意的点: 1. 这里在做dfs/bfs的时候不需要用visited,只需要在if里查board[i][j]=='O'就行,因为visited已经被mark成y了。 2. bfs时保存坐标点用 i
2015-01-10 12:57:17
383
原创 [leetcode] 126 Word Ladder ii bfs dfs
大致框架:用bfs,从start开始,建一个图,parent node连接着可以变到的node (aka. in dict || ==end) 与word ladder 区别: 1. 没有了global value ===> 每个node 包含了对应的lvl 2. 两个queue变成一个queue ===> node里有对应的lvl 不再需要两个queue 3. HashSet visi
2015-01-10 08:04:28
420
原创 [leetcode]127 Word Ladder BFS
要maintain的量: int level, Queue curLevel, Queue nextLevel, Set visited 两个check curLevel 的loop,里面对每个char position进行从a-z的调换,查1)是不是end, 是就return level+1; 2) 在dict, 没在visited就加nextLevel 要注意的地方: 1) 找到了
2015-01-09 23:38:08
380
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅