- 博客(18)
- 收藏
- 关注
原创 3sum closest to target
给一个包含n个整数的数组S, 找到和与给定整数target最接近的三元组,返回这三个数的和。class Solution {public: /** * @param numbers: Give an array numbers of n integer * @param target: An integer * @return: return
2015-09-29 19:34:55 320
原创 由中序遍历和后序遍历构造二叉树
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right
2015-09-29 16:53:23 326
原创 two sum
给一个整数数组,找到两个数使得他们的和等于一个给定的数target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是1到n,不是以0开头。您在真实的面试中是否遇到过这个题? Yes样例numbers=[2, 7, 11, 15], target=9return [1, 2]
2015-09-29 10:32:20 246
原创 三数之和为0的组合
给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。样例如S = {-1 0 1 2 -1 -4}, 你需要返回的三元组集合的是:(-1, 0, 1)(-1, -1, 2)class Solution {public: /** * @param numbers : Give a
2015-09-28 13:43:45 823
原创 根据数组构造线段树
Given [3,2,1,4]. The segment tree will be: [0, 3] (max = 4) / \ [0, 1] (max = 3) [2, 3] (max = 4) / \ /
2015-09-28 12:50:34 422
原创 构造所有二叉查找树
给出n,生成所有由1...n为节点组成的不同的二叉查找树您在真实的面试中是否遇到过这个题? Yes样例给出n = 3,生成所有5种不同形态的二叉查找树:1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 /
2015-09-27 10:52:19 367
原创 二叉树的数量
给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种?您在真实的面试中是否遇到过这个题? Yes样例给出n = 3,有5种不同形态的二叉查找树:1 3 3 2 1 \ / / / \ \ 3 2 1 1 3
2015-09-27 08:57:08 1100
原创 线段树查询2
对于一个数组,我们可以对其建立一棵 线段树, 每个结点存储一个额外的值 count 来代表这个结点所指代的数组区间内的元素个数. (数组中并不一定每个位置上都有元素)实现一个 query 的方法,该方法接受三个参数 root, start和 end, 分别代表线段树的根节点和需要查询的区间,找到数组中在区间[start, end]内的元素个数。/** * Definiti
2015-09-26 13:17:54 301
原创 线段树的修改
对于一棵 最大线段树, 每个节点包含一个额外的 max 属性,用于存储该节点所代表区间的最大值。设计一个 modify 的方法,接受三个参数 root、 index 和value。该方法将 root 为跟的线段树中 [start, end] = [index, index] 的节点修改为了新的 value ,并确保在修改后,线段树的每个节点的 max 属性仍然具有正确的值。
2015-09-26 12:12:03 289
原创 线段树构造
线段树是一棵二叉树,他的每个节点包含了两个额外的属性start和end用于表示该节点所代表的区间。start和end都是整数,并按照如下的方式赋值:根节点的 start 和 end 由 build 方法所给出。对于节点 A 的左儿子,有start=A.left, end=(A.left + A.right) / 2。对于节点 A 的右儿子,有start=(A.left + A.right) / 2
2015-09-26 11:14:15 385
原创 线段树查询
对于一个有n个数的整数数组,在对应的线段树中, 根节点所代表的区间为0-n-1, 每个节点有一个额外的属性max,值为该节点所代表的数组区间start到end内的最大值。为SegmentTree设计一个 query 的方法,接受3个参数root, start和end,线段树root所代表的数组中子区间[start, end]内的最大值。您在真实的面试中是否遇到过这个题?
2015-09-26 10:57:29 396
原创 n queens
n皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击。给定一个整数n,返回所有不同的n皇后问题的解决方案。每个解决方案包含一个明确的n皇后放置布局,其中“Q”和“.”分别表示一个女王和一个空位置。您在真实的面试中是否遇到过这个题? Yes样例对于4皇后问题存在两种解决的方案:[ [".Q..", // S
2015-09-25 20:42:41 345
原创 partition list
给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。您在真实的面试中是否遇到过这个题? Yes样例给定链表 1->4->3->2->5->2->null,并且 x=3返回 1->2->2->4->3->5->null/** * Definition of L
2015-09-24 18:30:13 249
原创 翻转字符串
给定一个字符串,逐个翻转字符串中的每个单词。您在真实的面试中是否遇到过这个题? Yes样例给出s = "the sky is blue",返回"blue is sky the"说明单词的构成:无空格字母构成一个单词输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括如何处理两个单词间的多个空格?在反转
2015-09-24 12:58:28 426
原创 search a 2d matrix
写出一个高效的算法来搜索 m × n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每行的第一个数大于上一行的最后一个整数。您在真实的面试中是否遇到过这个题? Yes样例考虑下列矩阵:[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]给出 targ
2015-09-22 09:43:10 266
原创 insert interval
给出一个无重叠的按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。您在真实的面试中是否遇到过这个题? Yes样例插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]。插入区间[3, 4] 到 [[1,2], [5,9]],我们得到 [[1
2015-09-21 18:51:04 440
原创 岛屿个数
给一个01矩阵,求不同的岛屿的个数。0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。您在真实的面试中是否遇到过这个题? Yes样例在矩阵:[ [1, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 0], [0,
2015-09-21 16:02:58 687
原创 count and say
报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:1, 11, 21, 1211, 111221, ...1 读作 "one 1" -> 11.11 读作 "two 1s" -> 21.21 读作 "one 2, then one 1" -> 1211.给定一个整数 n, 返回 第 n 个顺序。您在真实的面试中是否
2015-09-21 15:58:51 293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人