摘要: 题目: 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 通过给定的数组构建最大二叉树,并且输出这个树的根节点。 Example 1: 注意: 解题思路: 找出最大值,以及最大值的位置,分成左右两个数组,用递归的思路解决。 代码: 相关知识: c++中的迭代器,非常好用 阅读全文
posted @ 2019-05-07 14:37 yxl2019 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 解题思路: DFS,每一层位nums中的一个数,该数可能存在也可能不存在。 代码: 阅读全文
posted @ 2019-04-24 16:30 yxl2019 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 解题思路: DP(Dynamic Programming)动态规划。 维护一个dp数组,dp[i][j]即到grid[i][j]最短的距离。 阅读全文
posted @ 2019-04-22 16:51 yxl2019 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 解题思路: DFS,递归。 代码: 阅读全文
posted @ 2019-04-22 16:28 yxl2019 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 解题思路: dfs递归 代码: 阅读全文
posted @ 2019-04-08 15:28 yxl2019 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: 解题思路: 首先加一个伪头结点 找到最后一个比x小的结点,把pre指向该结点。 然后往后找,找到比x小的结点就放到pre后面,pre= 阅读全文
posted @ 2019-04-02 18:02 yxl2019 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 解题思路: 奇数位置的结点与偶数位置的结点进行交换,如果链表有奇数个结点,则最后一个结点不用管。注意,用一个假头节点dummy可以避免最后找不到链表的头。 代码 阅读全文
posted @ 2019-04-02 16:54 yxl2019 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 题目: 阿拉伯数字转化为罗马数字 解题思路: 设置两个vector,一个放罗马数字,一个放罗马数字所对应的阿拉伯数字; 从给定数字num的最高位开始,逐位转化;n-=2; 如果该位数字是1-3,则在结果字符串上加上该位数字大小个roman[n] 如果该位数字是4,则在结果字符串上加上roman[n] 阅读全文
posted @ 2019-04-01 17:32 yxl2019 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 阅读全文
posted @ 2019-04-01 16:09 yxl2019 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题目: 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 示例 1: 示例 2: 示例 3: 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整 阅读全文
posted @ 2019-03-29 10:35 yxl2019 阅读(95) 评论(0) 推荐(0) 编辑