会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
約束の空
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
6
7
8
9
10
11
12
13
14
···
22
下一页
2018年11月21日
Disjoint Set
摘要: Disjoint Set,最基本的操作就是 Union 和 Find 两个函数。 Union 有根据size和rank两种方法,而 Find 通常使用 path compression 来提升后续搜索的效率。 时间复杂度等可以参考 http://web.eecs.utk.edu/~plank/pla
阅读全文
posted @ 2018-11-21 23:31 約束の空
阅读(367)
评论(0)
推荐(0)
2018年11月20日
LeetCode 855. Exam Room
摘要: 方法一:Set (BST) Set存放有人的index。 每次坐下时,遍历set找到最大的距离,并且记录位置,离开则直接删除目标数字。 注意一些边界情况和下标即可,最容易遗漏的就是最左边和最右边的位置。 时间复杂度 seat O(n),leave O(logn) 方法二:Set (BST) + Un
阅读全文
posted @ 2018-11-20 13:12 約束の空
阅读(272)
评论(0)
推荐(0)
2018年11月16日
LeetCode 403. Frog Jump
摘要: 方法一:DFS+Memoization dfs做最直接,但是会超时。 DFS+Memoization 实际就是把所有return的地方就保存到memo再return,时间复杂度O(n^2) 方法二:DP 我最开始想的时候,dp[i][j] 表示用j跳到i,可不可行。dp[0][0]=true, if
阅读全文
posted @ 2018-11-16 11:15 約束の空
阅读(223)
评论(0)
推荐(0)
2018年11月14日
LeetCode 794. Valid Tic-Tac-Toe State
摘要: 题不难,但是考虑的时候要全面,很可能漏掉一些条件。 首先要判断棋子个数是否合法。由于X先动,所以X的个数要么比O多一个(O还没下),要么和O相等(O下好了)。 一开始我做的时候,只想到win的只可能一个,就用了一个count_win,判断是不是1。但是这样做是不对的,因为赢了以后,游戏是立即结束的,
阅读全文
posted @ 2018-11-14 09:45 約束の空
阅读(371)
评论(0)
推荐(0)
2018年11月13日
LeetCode 399. Evaluate Division
摘要: Graph+BFS/DFS 这道题最好想到的就是建立一个graph,两个节点的ratio就当做图的边保存下来。 query的时候,只要从一个节点开始,dfs或者bfs,把一路的ratio都乘起来即可。 用BFS来做: Union Find 用图来做,既需要大量空间,而且dfs和bfs的效率都不是很高
阅读全文
posted @ 2018-11-13 03:28 約束の空
阅读(592)
评论(0)
推荐(0)
2018年11月12日
LeetCode 157,158. Read N Characters Given Read4 I+II
摘要: Read N Characters Given Read4 这个题目和C里面读文件很像。 read4每次只能读四个字符,把字符放到buf里,返回值是实际读到的字符数。 而我们要做的是用read4实现一个能够读n个字符的函数 read,同样,读到的字符放到buf里。 if (count==0) bre
阅读全文
posted @ 2018-11-12 12:57 約束の空
阅读(372)
评论(0)
推荐(0)
LeetCode 302. Smallest Rectangle Enclosing Black Pixels
摘要: DFS 最一开始想到的就是dfs,从题目给的点开始dfs搜索。 时间复杂度为O(mn) Binary Search 这道题给了一个坐标(x,y),其实是有用意的。如果只是单纯的搜索,我们完全可以搜索整个图。 这道题其实可以用二分来做。由于给定的点是黑的,我们可以从水平和竖直两个方向,分别找到由黑变白
阅读全文
posted @ 2018-11-12 09:19 約束の空
阅读(310)
评论(0)
推荐(0)
LeetCode 418. Sentence Screen Fitting
摘要: 暴力模拟会超时。因此必须一行行直接放,不能一个个word放。 这种方法很巧妙,把word整合成一个string,单词间用空格分隔,最后也加一个空格。 用一个变量记录当前已经在screen上放了多少个字符,记为count。因此 count%n 下一个要放的字符。 对于每一行,先假设cols个字符都能放
阅读全文
posted @ 2018-11-12 05:46 約束の空
阅读(338)
评论(0)
推荐(0)
2018年11月11日
Backtracing: Subsets I+II, Permutations I+II, Combination Sum I+II
摘要: Subsets Subsets II 先排序,方便跳过重复元素。同一层递归中相同元素跳过。 Subsets 时间复杂度 T(n) = T(n-1)+T(n-2)+...+T(1)+T(0) -> T(n) = O(2^n) 如果考虑 res.push_back(cur) 是时间 O(n),那么总的时
阅读全文
posted @ 2018-11-11 23:06 約束の空
阅读(262)
评论(0)
推荐(0)
LeetCode 133. Clone Graph
摘要: deep copy graph,图的问题。要copy首先要遍历,遍历图可以用dfs也可以bfs。 本题的关键在于,由于节点和节点之间连通,当前遍历的节点很可能之前就已经clone过了,此时就不需要再一次clone了,否则会出现问题。 因此,我们可以建立原节点与clone节点的映射,用一个unorde
阅读全文
posted @ 2018-11-11 10:18 約束の空
阅读(129)
评论(0)
推荐(0)
上一页
1
···
6
7
8
9
10
11
12
13
14
···
22
下一页
公告