剑指Offer刷题记录
剑指Offer刷题记录,尽量一题多解,记录每个刷题心路历程
小伍说-523能源
未来已来,只是尚未流行,[等风来]
展开
-
剑指 Offer II 006. 排序数组中两个数字之和
1、题目描述 2、解题思路前提:该数组已经是排好序的【升序】数组了。复杂度分析时间复杂度:O(n),其中 n 是数组的长度。两个指针移动的总次数最多为 n 次。空间复杂度:O(1)。原创 2022-06-30 17:50:09 · 84 阅读 · 0 评论 -
剑指 Offer 12. 矩阵中的路径
1、题目描述 2、解题思路【深度优先搜索(DFS)+ 剪枝】深度优先搜索: 可以理解为暴力法遍历矩阵中所有字符串可能性。剪枝: 在搜索中,遇到 的情况(例如:此矩阵元素和目标字符不同、此元素已被访问),则应立即返回,称之为 。3、代码详情如下注意点:1、递归终止条件,边界情况校验 || 同时开头元素跟work[k]不相同,可以直接剪枝掉,这样时间复杂度将大大下降。2、头标志,board[i][j] = '\0'; 必须添加,否则测试用例中有case测试不过,是为了防止循环遍历情况。时间复杂度 O..原创 2022-06-22 22:27:28 · 80 阅读 · 0 评论 -
剑指 Offer 26. 树的子结构
1、题目内容2、题目分析本题是【对称二叉树】的引申,局部进行【二叉树对称的判定】,然后主二叉树逐步递归到各个分支逻辑,进行判定,进行二次循环递归逻辑。3、代码实现时间复杂度 O(MN): 其中 M,N 分别为树 A 和 树 B 的节点数量;先序遍历树 A 占用 O(M) ,每次调用 recur(A, B) 判断占用 O(N) 。空间复杂度 O(M): 当树 A 和树 B 都退化为链表时,递归调用深度最大。当 M≤N 时,遍历树 A 与递归判断的总递归深度为 M ;当 M>N 时,最差情况为遍历至树.原创 2022-06-22 18:58:26 · 109 阅读 · 0 评论 -
剑指 Offer 27. 二叉树的镜像
1、题目描述2、算法分类 ---- 搜索与回溯【搜索与回溯】是计算机解题中常用的算法,很多问题无法根据某种确定的计算法则来求解,可以利用搜索与回溯的技术求解。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解。3、代码实现--方法一【递归与回溯】时间复杂度 O(N) : 其中 N 为二叉树的节点数量,建立二叉树镜像需要遍历树的所有节点,占用 O(N)时间。空间复杂度 O(N):.原创 2022-06-22 13:05:04 · 101 阅读 · 0 评论 -
剑指 Offer 29. 顺时针打印矩阵
1、题目内容:2、解题代码 3、注意事项3-1、关键点需要找到4个点,【上】-top 【下】-bottom 【左】-left 【右】-right,并且边界概念要很清晰3-2、复杂度时间复杂度 O(MN):M,N 分别为矩阵行数和列数。空间复杂度 O(1): 四个边界 left , right , top , bottom 使用常数大小的 额外 空间( pOrder 为必须使用的空间)。3-3、4个校验终止条件if ( ++top > bottom ) break; // 从 【左上】到【右上】输出..原创 2022-06-21 20:35:57 · 71 阅读 · 0 评论 -
剑指Offer刷题目录【JAVA版】
剑指Offer刷题目录【JAVA版】原创 2022-06-21 20:23:36 · 91 阅读 · 0 评论