摘要: 问题 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1,6, 阅读全文
posted @ 2021-03-07 23:08 tmpUser 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,2, 阅读全文
posted @ 2021-03-07 21:50 tmpUser 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 问题 写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负 阅读全文
posted @ 2021-03-07 21:12 tmpUser 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。 示例 ** 输入:** [1,2,3,4,5] 阅读全文
posted @ 2021-03-07 20:26 tmpUser 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 问题 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。 解答 class Solution { public: int add(int a, int b) { while (b) { int c = (unsigned)(a & b) << 1; a 阅读全文
posted @ 2021-03-07 17:41 tmpUser 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。 示例 输入: [1,2,1] 输出: [2,-1 阅读全文
posted @ 2021-03-07 14:43 tmpUser 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 问题 给你两个没有重复元素的数组nums1和nums2,其中nums1是nums2的子集。 请你找出nums1中每个元素在nums2中的下一个比其大的值。 nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在,对应位置输出-1。 示例 输入: nums 阅读全文
posted @ 2021-03-07 14:23 tmpUser 阅读(38) 评论(0) 推荐(0) 编辑