摘要:
一、题目说明 题目239. Sliding Window Maximum,给一个数组,和窗口长度,窗口每次向右滑动1位,返回滑动窗口的最大值。时间复杂度要求是线性。 二、我的解答 最直接的办法就是 ,但是性能不足,复杂度是O(kN): 性能如下: 三、优化措施 用双端队列实现: 性能如下: 阅读全文
摘要:
一、题目说明 题目238. Product of Array Except Self,给n个整数,返回一个数组,每个元素都是原数组除了该位置元素外的乘积。不能用除法,复杂度要求是O(n)。难度是Medium! 二、我的解答 看到这个问题,我第一想法就是求所有元素的乘积,然后就简单了。但是不允许使用除 阅读全文
摘要:
一、题目说明 题目236. Lowest Common Ancestor of a Binary Tree,在一个二叉树中找两个节点的最近公共祖先。难度是Medium! 二、我的解答 这个用二叉树的递归遍历,稍加改造即可: 性能如下: 三、优化措施 其他方法,暂时想不起来。 阅读全文
摘要:
一、题目说明 题目208. Implement Trie (Prefix Tree),实现trie,包括insert、search、startsWith。 二、我的解答 Trie树,又叫“字典树”,“前缀树”。实现代码如下: 性能如下: 三、优化措施 阅读全文
摘要:
一、题目说明 题目206. Reverse Linked List,翻转一个链表。难度是Easy!可以递归,也可以非递归。 二、我的解答 翻转,这个确实不难,非递归算法: 性能如下: 三、优化措施 用翻转链表法实现: 阅读全文
摘要:
一、题目说明 题目200. Number of Islands,在一个0(代表水)和1(代表陆地)组成的2d地图中,计数“岛屿”的数量。 二、我的解答 本题目计算图的最大连通分量,可以用图的深度优先遍历,也可用图的广度优先遍历。 深度优先遍历算法,代码如下: 性能如下: 阅读全文
摘要:
一、题目说明 题目234. Palindrome Linked List,判断一个链表是否是回文。难度是Easy! 二、我的解答 这个题目,时间复杂度要求O(n),空间复杂的O(1)。如果不按照上述要求,回文还是简单的。 比如,将链表放到数组中,然后前后比较就是了。 下面用的是另外一种思路,先找到链 阅读全文