草庐IT

剑指offer

全部标签

剑指 Offer 68 - II. 二叉树的最近公共祖先(java解题)

目录1.题目2.解题思路3.数据类型功能函数总结4.java代码1.题目给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root= [3,5,1,6,2,0,8,null,null,7,4] 示例1:输入:root=[3,5,1,6,2,0,8,null,null,7,4],p=5,q=1输出:3解释:节点5和节点1的最近公共祖先是节点3。示例 2:输入:root=[3,5,1,6,2,0,8,nu

剑指 Offer 68 - II. 二叉树的最近公共祖先(java解题)

目录1.题目2.解题思路3.数据类型功能函数总结4.java代码1.题目给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root= [3,5,1,6,2,0,8,null,null,7,4] 示例1:输入:root=[3,5,1,6,2,0,8,null,null,7,4],p=5,q=1输出:3解释:节点5和节点1的最近公共祖先是节点3。示例 2:输入:root=[3,5,1,6,2,0,8,nu

剑指 Offer 32 - II. 从上到下打印二叉树 II(java解题)

目录1.题目2.解题思路3.数据类型功能函数总结4.java代码5.踩坑记录1.题目从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7],3/\920/\157返回其层次遍历结果:[[3],[9,20],[15,7]]提示:节点总数作者:Krahets链接:https://leetcode.cn/leetbook/read/illustration-of-algorithm/5vawr3/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。2.解题思路这一题和

剑指 Offer 32 - II. 从上到下打印二叉树 II(java解题)

目录1.题目2.解题思路3.数据类型功能函数总结4.java代码5.踩坑记录1.题目从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7],3/\920/\157返回其层次遍历结果:[[3],[9,20],[15,7]]提示:节点总数作者:Krahets链接:https://leetcode.cn/leetbook/read/illustration-of-algorithm/5vawr3/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。2.解题思路这一题和

【位运算】剑指offer 56. 数组中数字出现的次数

这是一系列位运算的题目,本文将由浅入深,先从最简单的问题开始:问题1:一个数组中只有一个数字出现过1次,其余数字都出现过两次,请找到那个只出现1次的数字。要求时间复杂度是\(O(n)\),空间复杂度是\(O(1)\)。解法:考虑到位运算中的异或运算,一个数字和它自己做异或,结果为0。所以只需要遍历整个数组,挨个异或,最后得到的结果就是那个只出现1次的数字。classSolution{public:vectorsingleNumbers(vector&nums){intres=0;for(autonum:nums){res^=num;}returnres;}};问题2:一个整型数组nums里除两

【位运算】剑指offer 56. 数组中数字出现的次数

这是一系列位运算的题目,本文将由浅入深,先从最简单的问题开始:问题1:一个数组中只有一个数字出现过1次,其余数字都出现过两次,请找到那个只出现1次的数字。要求时间复杂度是\(O(n)\),空间复杂度是\(O(1)\)。解法:考虑到位运算中的异或运算,一个数字和它自己做异或,结果为0。所以只需要遍历整个数组,挨个异或,最后得到的结果就是那个只出现1次的数字。classSolution{public:vectorsingleNumbers(vector&nums){intres=0;for(autonum:nums){res^=num;}returnres;}};问题2:一个整型数组nums里除两

剑指Offer 05. 替换空格(java解题)

目录1.题目2.解题思路(通用3.数据类型功能函数总结4.java代码1.题目请实现一个函数,把字符串s中的每个空格替换成%20。示例1:输入:s="Wearehappy."输出:"We%20are%20happy."限制:02.解题思路(通用逐个字符遍历String字符串,并设置一个结果字符串变量re。如果遍历到的字符不是空格,就把字符存入结果变量;如果遍历到的字符是空格,则将%20存入结果变量;由于结果字符串re需要增加字符,而String类型有一个特点:String类是不可改变的,所以你一旦创建了String对象,那它的值就无法改变了,因此re不能定义为string类型,如果需要对字符串

剑指Offer 05. 替换空格(java解题)

目录1.题目2.解题思路(通用3.数据类型功能函数总结4.java代码1.题目请实现一个函数,把字符串s中的每个空格替换成%20。示例1:输入:s="Wearehappy."输出:"We%20are%20happy."限制:02.解题思路(通用逐个字符遍历String字符串,并设置一个结果字符串变量re。如果遍历到的字符不是空格,就把字符存入结果变量;如果遍历到的字符是空格,则将%20存入结果变量;由于结果字符串re需要增加字符,而String类型有一个特点:String类是不可改变的,所以你一旦创建了String对象,那它的值就无法改变了,因此re不能定义为string类型,如果需要对字符串

剑指 Offer 07. 重建二叉树(java解题)

目录1.题目2.解题思路个人思路3.数据类型功能函数总结4.java代码1.题目输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例1:Input:preorder=[3,9,20,15,7],inorder=[9,3,15,20,7]Output:[3,9,20,null,null,15,7]示例2:Input:preorder=[-1],inorder=[-1]Output:[-1]限制:0作者:Krahets链接:https://leetcode.cn/leetbook/read/illustration-of-

剑指 Offer 07. 重建二叉树(java解题)

目录1.题目2.解题思路个人思路3.数据类型功能函数总结4.java代码1.题目输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例1:Input:preorder=[3,9,20,15,7],inorder=[9,3,15,20,7]Output:[3,9,20,null,null,15,7]示例2:Input:preorder=[-1],inorder=[-1]Output:[-1]限制:0作者:Krahets链接:https://leetcode.cn/leetbook/read/illustration-of-