
剑指offer刷题
文章平均质量分 58
年轻人江老Der
Viva La Vida
展开
-
三种方法解二叉树的最近公共祖先
题目链接:力扣目录法一:递归一详细讲解:法二:递归二详细讲解法三: 保存路径详细讲解:该题目的解法有很多中,接下来我会详细讲解其中三种方法。法一:递归一代码实现:class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if(root==nullptr||root==q||root==p)原创 2022-04-30 12:01:35 · 867 阅读 · 0 评论 -
详解牛客----手套
原题链接:手套__牛客网解题思路:1. 首先考虑两边手套都不出现0的情况以取左边的为例子:把左边所有的手套数量减去数量最小的颜色的数量然后+1, 对应上图就是取17-2+1=16只,也就是说,左边取16只手套,肯定把所有颜色都取出,现在只要往另一只手中取一只就能匹配了。假设取15只手套,那么可能存在这么一种情况:取了4只黄色,5只绿色,6只蓝色;那么橙色的就可能取不到,所以取15只手套不能100%的把所有可能出现的颜色都取出。同样的操作把右边的走一遍,判断左边和右边所取的数量哪一种更小原创 2022-04-21 12:14:12 · 550 阅读 · 0 评论 -
详解 剑指offer 11.旋转数组的最小数字
题目要求:有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。数据范围:1≤n≤100001 \le n \le 100001≤n≤10000,数组中任意元素的值:0≤val≤100000 \le val \le 100000≤val≤10000要求:空间复杂度:O(1) ,时间复杂度:O(lo.原创 2022-03-10 13:39:56 · 659 阅读 · 14 评论