随笔分类 - 剑指offer笔记
摘要:剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 地址:剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x
阅读全文
摘要:剑指 Offer 67. 把字符串转换成整数 地址:剑指 Offer 67. 把字符串转换成整数 写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的
阅读全文
摘要:剑指 Offer 66. 构建乘积数组 地址:剑指 Offer 66. 构建乘积数组 给定一个数组 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]×
阅读全文
摘要:剑指 Offer 65. 不用加减乘除做加法 地址:剑指 Offer 65. 不用加减乘除做加法 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。 示例: 输入: a = 1, b = 1 输出: 2 提示: a, b 均可能是负数或 0 结果不会溢
阅读全文
摘要:剑指 Offer 63. 股票的最大利润 地址:剑指 Offer 63. 股票的最大利润 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第
阅读全文
摘要:剑指 Offer 62. 圆圈中最后剩下的数字 地址:剑指 Offer 62. 圆圈中最后剩下的数字 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一
阅读全文
摘要:剑指 Offer 61. 扑克牌中的顺子 地址:剑指 Offer 61. 扑克牌中的顺子 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 1: 输入: [1
阅读全文
摘要:剑指 Offer 60. n个骰子的点数 地址:剑指 Offer 60. n个骰子的点数 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。
阅读全文
摘要:剑指 Offer 59 - II. 队列的最大值 地址:剑指 Offer 59 - II. 队列的最大值 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_fr
阅读全文
摘要:剑指 Offer 59 - I. 滑动窗口的最大值 地址:剑指 Offer 59 - I. 滑动窗口的最大值 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5
阅读全文
摘要:剑指 Offer 58 - II. 左旋转字符串 地址:剑指 Offer 58 - II. 左旋转字符串 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefg
阅读全文
摘要:剑指 Offer 58 - I. 翻转单词顺序 地址:剑指 Offer 58 - I. 翻转单词顺序 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。
阅读全文
摘要:剑指 Offer 57 - II. 和为s的连续正数序列 地址:剑指 Offer 57 - II. 和为s的连续正数序列 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 示例 1: 输入:
阅读全文
摘要:剑指 Offer 57. 和为s的两个数字 地址:剑指 Offer 57. 和为s的两个数字 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。 示例 1: 输入:nums = [2,7,11,15], target = 9
阅读全文
摘要:剑指 Offer 56 - II. 数组中数字出现的次数 II 地址:剑指 Offer 56 - II. 数组中数字出现的次数 II 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 示例 1: 输入:nums = [3,4,3,3] 输出:4 示
阅读全文
摘要:剑指 Offer 56 - I. 数组中数字出现的次数 地址:剑指 Offer 56 - I. 数组中数字出现的次数 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 输入:nums =
阅读全文
摘要:剑指 Offer 55 - II. 平衡二叉树 地址:剑指 Offer 55 - II. 平衡二叉树 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 示例 1: 给定二叉树 [3,9,20,null,null,15,7
阅读全文
摘要:剑指 Offer 55 - I. 二叉树的深度 地址:剑指 Offer 55 - I. 二叉树的深度 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7],
阅读全文
摘要:剑指 Offer 54. 二叉搜索树的第k大节点 地址:剑指 Offer 54. 二叉搜索树的第k大节点 给定一棵二叉搜索树,请找出其中第k大的节点。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 / 1 4 2 输出: 4 示例 2: 输入: root = [5
阅读全文
摘要:剑指 Offer 53 - II. 0~n-1中缺失的数字 地址:剑指 Offer 53 - II. 0~n-1中缺失的数字 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例
阅读全文
浙公网安备 33010602011771号