摘要:
一、题目说明 题目139. Word Break,判断一个非空字符串是否能由字典中的字符串拼接成。难度是Medium! 二、我的解答 尽管这个题目难度是Medium,遗憾的是没做出来。 用回溯方法,从字符串s的第0个位置开始,...如果s[0]在dict中出现,继续查找。回溯法会超时的,这里用vis 阅读全文
摘要:
一、题目说明 题目138. Copy List with Random Pointer,一个链表中的节点包括一个random指针,可以指向链表中的任何节点或者空,生成该链表的一个拷贝。难度是Medium! 二、我的解答 这个题目是赋值一个链表,难度在于random链表的指向。这里用计数方式实现: 性 阅读全文
摘要:
一、题目说明 题目136. Single Number,给定一列非空整数,所有数字都出现2次,只有1个数字只出现1次,找到这个数字。 二、我的解答 这个题目,最简单的做法是排序,然后查找即可。在此,我们用 统计数量,然后找到数量是1的。 不使用额外的空间: 阅读全文
摘要:
一、题目说明 题目128. Longest Consecutive Sequence,给定一列无序的整数,计算最大连续的整数的个数。复杂度要求是O(n),难度是Hard! 二、我的解答 这个题目解答方法包括,brute force、sort、hash。但brute force和sort的复杂度不符合 阅读全文
摘要:
一、题目说明 题目124. Binary Tree Maximum Path Sum,给一个非空二叉树,求最大路径之和。 二、我的解答 这个题目,经过几个小时的思考,终于做出来了。一个树的最大路径,可能出现在“左子树”,“右子树”,或者包含“根节点”。其中dfs用来递归计算从根到叶的最大路径之和。 阅读全文
摘要:
一、题目说明 题目121. Best Time to Buy and Sell Stock,有一列数,第i个元素是第i天股票的价格,只允许一次交易(买和卖),计算如何利润最大化。难度是Easy! 二、我的解答 不动脑子,用brute force方法: 三、优化措施 一遍扫描,计算最小值,计算最大利润 阅读全文
摘要:
一、题目说明 题目114. Flatten Binary Tree to Linked List,将一个二叉树“原地”压缩为“链表”形态的二叉树。难度为Medium! 二、我的解答 这个题目如果允许使用栈的话Easy,先序遍历二叉树,右子树入栈,左子树入栈。当栈不空的时候,将栈顶元素放到右子树即可。 阅读全文
摘要:
一、题目说明 题目105. Construct Binary Tree from Preorder and Inorder Traversal,给二叉树的前序和中序遍历序列,构造一棵二叉树。题目难度是Medium! 二、我的解答 这个题目数据结构上面也有讲,这里用递归遍历算法。前序遍历第1个为树的根 阅读全文
摘要:
一、题目说明 题目104. Maximum Depth of Binary Tree,求二叉树的最大高度。难度是Easy! 二、我的解答 按层遍历二叉树,就可以计算最大深度。下面是非递归算法: 性能如下: 三、优化措施 Easy,就不优化了。 阅读全文
摘要:
一、题目说明 题目102. Binary Tree Level Order Traversal,给一个二叉树,返回按层遍历的各节点,每层返回一个数组。 二、我的解答 这个题目是普通的二叉树按层遍历,没什么难度。代码如下: 性能如下: 三、优化措施 不再做任何优化了。 阅读全文