摘要:
"最近公共祖先" 给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。 最近公共祖先是两个节点的公共的祖先节点且具有最大深度。 注意事项 假设给出的两个节点都在树中存在 样例 对于下面这棵二叉树 LCA(3, 5) = 4 LCA(5, 6) = 7 LCA(6, 7) = 7 标签 LintC 阅读全文
摘要:
"转换字符串到整数" 实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN( 2147483648)如果是负整数。 样例 "10" = 10 " 1" = 1 "12312 阅读全文
摘要:
"删除排序链表中的重复元素" 给定一个排序链表,删除所有重复的元素每个元素只留下一个。 样例 给出 1 1 2 null,返回 1 2 null 给出 1 1 2 3 3 null,返回 1 2 3 null 标签 链表 思路 遍历树,得到根节点到目标节点的路径。 节点A和B分别得到两个路径数组pa 阅读全文
摘要:
"二叉树的锯齿形层次遍历" 给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 样例 给出一棵二叉树 {3,9,20, , ,15,7}, 返回其锯齿形的层次遍历为: [ & 160;& 160;& 160;& 160;[3], & 160;& 160; 阅读全文
摘要:
"旋转字符串" 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例 对于字符串 "abcdefg". offset=0 = "abcdefg" offset=1 = "gabcdef" offset=2 = "fgabcde" offset=3 = "efgabcd" 挑战 在数 阅读全文
摘要:
"A + B 问题" 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 注意事项 你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。 说明 a和b都是 32位 整数么? 是的 我可以使用位运算符么? 当然可以 样例 如果 a=1 并且 b=2 阅读全文
摘要:
"搜索区间" 给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。 如果目标值不在数组中,则返回[ 1, 1] 样例 给出[5, 7, 7, 8, 8, 10]和目标值target=8, 返回[3, 4] 挑战 时间复杂度 O(log n) 标签 数组 排序数组 二分 阅读全文
摘要:
"二叉树的最大深度" 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的距离。 样例 给出一棵如下的二叉树: 这个二叉树的最大深度为3. 标签 递归 分治法 二叉树 优步 code / Definition of TreeNode: class TreeNode { public 阅读全文
摘要:
"落单的数" 给出2 n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。 样例 给出 [1,2,2,1,3,4,3],返回 4 挑战 一次遍历,常数级的额外空间复杂度 标签 贪心 code class Solution { public: / @param A: Arra 阅读全文
摘要:
"翻转字符串" 给定一个字符串,逐个翻转字符串中的每个单词。 说明 单词的构成:无空格字母构成一个单词 输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括 如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个 标签 字符串处理 code class Solution 阅读全文
摘要:
"两数之和" 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。 注意事项 你可以假设只有一组答案。 样例 给出 numbers = [2, 阅读全文
摘要:
"将数组重新排序以构造最小值" 给定一个整数数组,请将其重新排序,以构造最小值。 注意事项 The result may be very large, so you need to return a string instead of an integer. 样例 给定 [3, 32, 321],通 阅读全文
摘要:
"第k大元素" 在数组中找到第k大的元素 注意事项 你可以交换数组中的元素的位置 样例 给出数组 [9,3,2,4,8],第三大的元素是 4 给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推 挑战 要求时间复杂度为O(n),空间复杂度为O(1) 阅读全文
摘要:
"统计数字" 计算数字k在0到n中的出现的次数,k可能是0~9的一个值 样例 例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12) 标签 枚举法 code class Solution { 阅读全文
摘要:
"丑数 II" 设计一个算法,找出只含素因子2,3,5 的第 n 大的数。 符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12... 注意事项 我们可以认为1也是一个丑数 样例 如果n = 9, 返回 10 挑战 要求时间复杂度为O(nlogn)或者O(n) 标签 Lint 阅读全文
摘要:
"主元素" 给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。 注意事项 You may assume that the array is non empty and the majority number always exist in the array. 样例 阅读全文
摘要:
"最大子数组" 给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。 注意事项 子数组最少包含一个数 样例 给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6 挑战 要求时间复杂度为O(n) 标签 领英 子数组 贪心 枚举法 Lint 阅读全文
摘要:
"逆序对" 在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。给你一个数组,求出这个数组中逆序对的总数。 概括:如果a[i] a[j] 且 i 样例 序列 [2, 4, 1, 3, 5] 中,有 3 个逆序对 (2, 1), (4, 1), (4, 3),则返回 3 。 阅读全文
摘要:
"螺旋矩阵 II" 给你一个数n生成一个包含1 n^2的螺旋形矩阵 样例 n = 3 矩阵为 [ & 160;& 160;& 160;& 160;[ 1, 2, 3 ], & 160;& 160;& 160;& 160;[ 8, 9, 4 ], & 160;& 160;& 160;& 160;[ 7 阅读全文
摘要:
"两个链表的交叉" 请写一个程序,找到两个单链表最开始的交叉节点。 注意事项 如果两个链表没有交叉,返回null。 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 样例 下列两个链表: 在节点 c1 开始交叉。 挑战 需满足 O(n) 时间复杂度,且仅用 O(1) 内存。 阅读全文