随笔分类 - LeetCode
摘要:https://oj.leetcode.com/problems/text-justification/这个题目没有什么算法。但是要实现还是比较麻烦,一次写对基本不可能。注意理解清楚题意,写完程序脑子里过一遍再编译可能会好一点。主要就是每次扫面一行以内的,正确的数算上最小空格数量能放下的单词,并统计...
阅读全文
摘要:https://oj.leetcode.com/problems/lru-cache/一道简单的考察数据结构的题目。首先要理解什么是LRU。LRU是最近最少使用,也就是说时间戳上面更新最慢的那个,在capacity满的情况下需要被删除。首先需要Get(key) = value的操作,这里需要一个ma...
阅读全文
摘要:https://oj.leetcode.com/problems/wildcard-matching/最终AC的方案是DP,并使用了一些技巧减少DP内存。首先容易推出递推关系:f (i,j) :后面已经匹配的情况下,前i个s字符和前j个p串字符是否能匹配?则视p[j-1]为'?' , '*'或者一般...
阅读全文
摘要:https://oj.leetcode.com/problems/word-ladder-ii/首先,要打印出所有路径,就必须用到DFS+pre的技术。因此需要构造出这个图,又因为需要打印出最短距离,所以构造图的同时还需要知道到终点的最短路径。构造图如果枚举所有点对会超时,O(n^2)算法不可行。考...
阅读全文
摘要:https://oj.leetcode.com/problems/valid-number/判断一个字符串是否为合法字符。这个题目画出状态机,可以做一个二维的状态表,然后回溯。注意这个状态表中其实没有分支,所以其实不需要真的回溯在往下搜索。int trans[10][6]={ { 0, 1, ...
阅读全文
摘要:题目见https://oj.leetcode.com/problems/max-points-on-a-line/如果使用叉乘对每根线检查所有顶点,妥妥的超时。看了别人答案,发现这道题有如下O(n^2)算法:对每个点i:1)检查它与[i+1,n)点组成的线,如果有两根线斜率一样,那么这两根线是同一根...
阅读全文
浙公网安备 33010602011771号