剑指Offer
文章平均质量分 61
剑指Offer
井井酒
敲代码的文艺青年
展开
-
剑指 Offer 35. 复杂链表的复制
复杂链表的复制——节点副本、哈希两种思路原创 2022-08-02 23:45:09 · 95 阅读 · 0 评论 -
剑指 Offer 26. 树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B = [4,1]输出:true需要遍历两次树,先遍历树A,找到与树B根节点值相同的节点;对于上述每个找到的节点,遍历树B,比对该树结构与找到的节点之下结构是否相同遍历树A(识别与树B root值相等的节点):遍历找到点对应子原创 2022-06-15 10:22:24 · 115 阅读 · 0 评论 -
剑指Offer 14.剪绳子—动态规划、数学推导
给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例1输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例2输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36从数学上推导,可以得出原创 2022-06-08 20:10:10 · 162 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例 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]分析主要利用二叉树前序,中序遍历的性质 | 递归前序数组的首元素是原创 2022-01-12 17:44:19 · 288 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
题目找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3分析1.暴力O(n^2)直接两层循环,判断相等时返回并结束,但会超时。2.交换O(n)利用题目中信息,数组中的数字范围在[0, n-1],一步步把元素k放置到下标k处,如果一个位置处有了多余一个数字,则已原创 2022-01-12 13:16:07 · 76 阅读 · 0 评论