摘要: 题目:根据中序和后序遍历构建二叉树 思路:利用递归加上分治的思想。先找到根节点的值,然后在根据中序遍历找到根节点的左右两边的值,然后在递归的处理左右两边的左右子树。这里的关键在于怎么处理递归的左右子树的范围,代码里面详细解释 代码: class Solution { public: TreeNode 阅读全文
posted @ 2017-02-03 21:07 Kobe10 阅读(1607) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个只包含数字的字符串,通过返回所有可能有效的IP地址组合来恢复它。 例如: 给定“25525511135”, return [“255.255.11.135”,“255.255.111.35”]。 (顺序无所谓) 代码: class Solution { public: vector< 阅读全文
posted @ 2017-02-03 19:46 Kobe10 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定整数的排序数组,找到给定目标值的起始和结束位置。 您的算法的运行时复杂性必须是O(log n)的顺序。 如果在数组中找不到目标,则返回[-1,-1]。 例如, 给定[5,7,7,8,8,10]和目标值8, return [3,4]。 思路:这个题目直接使用容器存储出现查找元素的位置。取出 阅读全文
posted @ 2017-02-03 19:28 Kobe10 阅读(720) 评论(0) 推荐(0) 编辑
摘要: 问题一:合并两个排序的链接列表,并将其作为新列表返回。 新列表应该通过将前两个列表的节点拼接在一起来进行。 思路:有两种方式:递归和非递归。我感觉递归的比较简单。给定两个链表,如果l1为空,返回l2,如果l2为空,返回l1. 如果l1节点大于l2,node等于l2当前节点,node->next=(递 阅读全文
posted @ 2017-02-03 19:26 Kobe10 阅读(667) 评论(0) 推荐(0) 编辑
摘要: 题目一: Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For example, If n = 4 and k = 2, a solution is: [ [2,4] 阅读全文
posted @ 2017-02-03 14:41 Kobe10 阅读(2423) 评论(0) 推荐(0) 编辑
摘要: 题目:给定一个数组,其中元素按升序排序,将其转换为高度平衡BST。 思路:因为是升序数组,那么中间的数字一定是根节点值,然后在对左右两边的数组进行查找根节点的递归。一次处理左右子树。 /** * Definition for binary tree * struct TreeNode { * int 阅读全文
posted @ 2017-02-03 13:24 Kobe10 阅读(668) 评论(0) 推荐(0) 编辑