自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Thomasc的博客

一个用来总结输出的地方

  • 博客(86)
  • 资源 (1)
  • 收藏
  • 关注

原创 Git常见问题(持续更新)

新建远程仓库注意事项github新建仓库时,注意不要选择初始化readme.md文件和.gitignore文件,这样可能导致自己代码push不上去。若初始化了仓库,则第一次push自己代码时,可以使用-f强制推送代码若想push已存在的本地文件第一步,现在本地文件夹中使用git init命令,初始化本地git仓库第二步,对本地仓库和远程仓库建立链接, 使用git remote add origin <远程仓库地址>,若是github的话,建议使用ssh,而不是https第三步,使用.

2022-05-15 08:44:00 687

原创 leetcode----82. 删除排序链表中的重复元素 II(三指针和递归)

82. 删除排序链表中的重复元素 II(三指针和递归)问题:给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。示例:输入:head = [1,2,3,3,4,4,5]输出:[1,2,5]输入:head = [1,1,1,2,3]输出:[2,3]思路:三指针 比较好理解 双指针也能做 思路是一样的,一个指针cur指向当前位置,一个指针prev指向前一个节点,方便删除,最后一个指针next指向下一个节点,核心思想就是

2022-04-25 22:32:57 667

原创 leetcode----143. 重排链表(寻找链表中点、反转链表以及链表合并 合体)

143. 重排链表(寻找链表中点、反转链表以及链表合并)问题:给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为:L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:示例1:示例2:示例1:输入:head = [1,2,3,4]输出:[1,4,2,3]示例2:输入:head = [1,2,3,4,5]输出

2022-04-23 21:52:40 650

原创 leetcode----199. 二叉树的右视图(BFS和DFS两种解法)

199. 二叉树的右视图 (BFS和DFS)问题:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1,3,4]输入: [1,null,3]输出: [1,3]输入: []输出: []思路:BFS 层序遍历,记录每一层最右节点即可,两种方式 正序记录最后一个,逆序记录每一层第一个;class Solution { public List&l

2022-04-19 22:12:52 289

原创 leetcode----33. 搜索旋转排序数组(局部有序,二分解决)

33. 搜索旋转排序数组(二分法)局部有序问题:整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。

2022-04-11 22:26:03 214

原创 leetcode----剑指 Offer 41. 数据流中的中位数(大顶堆+小顶堆)

剑指 Offer 41. 数据流中的中位数(优先队列)问题:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian()

2022-03-18 11:29:13 174

原创 leetcode----剑指Offer53-I.在排序数组中查找数字I、剑指Offer03.数组中重复的数字(三种解法--简单题不简单呀)

文章目录剑指Offer53-I.在排序数组中查找数字I剑指Offer03.数组中重复的数字剑指Offer53-I.在排序数组中查找数字I问题:统计一个数字在排序数组中出现的次数。示例:输入: nums = [5,7,7,8,8,10], target = 8输出: 2输入: nums = [5,7,7,8,8,10], target = 6输出: 0思路:利用二分查找寻找其左右边界class Solution { public int search(int[] nums, in

2022-02-21 23:20:56 86

原创 leetcode----969.煎饼排序(贪心+双指针)

969.煎饼排序(贪心+双指针)问题:给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序。一次煎饼翻转的执行过程如下:选择一个整数 k ,1 <= k <= arr.length反转子数组 arr[0…k-1](下标从 0 开始)例如,arr = [3,2,1,4] ,选择 k = 3 进行一次煎饼翻转,反转子数组 [3,2,1] ,得到 arr = [1,2,3,4] 。以数组形式返回能使 arr 有序的煎饼翻转操作所对应的 k 值序列。任何将数组排序且翻转次数在 10

2022-02-19 20:50:59 474

原创 leetcode----剑指offerr09.用两个栈实现队列、剑指Offer30.包含min函数的栈

文章目录剑指Offer09.用两个栈实现队列剑指Offer30.包含min函数的栈剑指Offer09.用两个栈实现队列问题:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[nul

2022-02-18 23:05:06 101

原创 leetcode---- 688.骑士在棋盘上的概率(记忆化dfs和动态规划两种解法)

688.骑士在棋盘上的概率问题:在一个 n x n 的国际象棋棋盘上,一个骑士从单元格 (row, column) 开始,并尝试进行 k 次移动。行和列是 从 0 开始 的,所以左上单元格是 (0,0) ,右下单元格是 (n - 1, n - 1) 。象棋骑士有8种可能的走法,如下图所示。每次移动在基本方向上是两个单元格,然后在正交方向上是一个单元格。每次骑士要移动时,它都会随机从8种可能的移动中选择一种(即使棋子会离开棋盘),然后移动到那里。骑士继续移动,直到它走了 k 步或离开了棋盘。返回

2022-02-17 10:43:30 575

原创 leetcode----540.有序数组中的单一元素(异或和二分两种解法)

540.有序数组中的单一元素问题:给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。示例:输入: nums = [1,1,2,3,3,4,4,8,8]输出: 2输入: nums = [3,3,7,7,10,11,11]输出: 10思路:暴力,异或,也能过,但是不符合时间复杂度要求class Solution { public in

2022-02-14 10:34:42 407

原创 leetcode----自定义实现花式反转字符串(151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串)

文章目录151.翻转字符串里的单词剑指Offer58-II.左旋转字符串151.翻转字符串里的单词问题:给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。说明:输入字符串 s 可以在前面、后面或者单词间包含多余的空格。翻转后单词间应当仅用一个空格分隔。翻转后的字符串中不应包含额外的空格。示例:输入:s = "the sky is blue"

2022-02-13 23:00:24 168

原创 leetcode----72.编辑距离(动态规划)

72.编辑距离问题:给你两个单词word1和word2, 请返回将word1 转换成word2所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')输入:word1 = "intention"

2022-02-12 21:41:56 682

原创 leetocde----n数和模板(1.两数之和、15.三数之和、18.四数之和)

适用于:1.两数之和//例如 求两数和Arrays.sort(nums);return nSumTarget(nums, 2, 0, target);15.三数之和18.四数之和n数之和模板//传入的数组需有序,有序才能使用二分法//n为n数和 start为起始索引 tartget为所求的和public List<List<Integer>> nSumTarget(int[] nums, int n, int start, int target){

2022-02-10 22:46:32 200

原创 leetcode----1447.最简分数(辗转相除法求最大公约数)

1447.最简分数问题:给你一个整数 n ,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于 n 的 最简 分数 。分数可以以 任意 顺序返回。示例:输入:n = 2输出:["1/2"]解释:"1/2" 是唯一一个分母小于等于 2 的最简分数。输入:n = 3输出:["1/2","1/3","2/3"]输入:n = 4输出:["1/2","1/3","1/4","2/3","3/4"]解释:"2/4" 不是最简分数,因为它可以化简为 "1/2" 。输入:n =

2022-02-10 21:23:24 338

原创 leetcode----42.接雨水(从暴力解法优化到双指针)

42.接雨水问题:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 输入:height = [4,2,0,3,2,5]输出:9思路:这道题最主要的是将问题分解,不要从全局看,而是从局部看。参考labulad

2022-02-08 23:02:20 144

原创 leetcode----1001.网格照明(模拟+哈希表)

1001.网格照明(模拟+哈希表)问题:在大小为 n x n 的网格 grid 上,每个单元格都有一盏灯,最初灯都处于 关闭 状态。给你一个由灯的位置组成的二维数组 lamps ,其中 lamps[i] = [rowi, coli] 表示 打开 位于 grid[rowi][coli] 的灯。即便同一盏灯可能在 lamps 中多次列出,不会影响这盏灯处于 打开 状态。当一盏灯处于打开状态,它将会照亮 自身所在单元格 以及同一 行 、同一 列 和两条 对角线 上的 所有其他单元格 。另给你一个二维数组

2022-02-08 21:33:44 403

原创 leetcode----24.两两交换链表中的节点(迭代和递归两种解法)

24.两两交换链表中的节点问题:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例:输入:head = [1,2,3,4]输出:[2,1,4,3]输入:head = []输出:[]输入:head = [1]输出:[1]思路: 参考:代码随想录双指针–迭代版本重点在节点交换 注意学习 while条件以及双指针的位置,双指针这样放使得操作会方便好多。class Solution {

2022-02-07 23:13:08 284

原创 leetcode----1405.最长快乐字符串(优先队列+贪心)

1405.最长快乐字符串(优先队列+贪心)问题:如果字符串中不含有任何 ‘aaa’,‘bbb’ 或 ‘ccc’ 这样的字符串作为子串,那么该字符串就是一个「快乐字符串」。给你三个整数 a,b ,c,请你返回 任意一个 满足下列全部条件的字符串 s:s 是一个尽可能长的快乐字符串。s 中 最多 有a 个字母 ‘a’、b 个字母 ‘b’、c 个字母 ‘c’ 。s 中只含有 ‘a’、‘b’ 、‘c’ 三种字母。如果不存在这样的字符串 s ,请返回一个空字符串 “”。示例:输入:a = 1, b

2022-02-07 22:33:37 310

原创 leetcode----621.任务调度器(模拟 和 桶思想两种解法)

621.任务调度器问题:给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。示例:输入:tasks = ["A","A","A",

2022-02-04 21:53:17 200

原创 leetcode----1414.和为K的最少斐波那契数字数目(贪心)

1414.和为K的最少斐波那契数字数目问题:给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契数字都可以被使用多次。斐波那契数字定义为:F1 = 1F2 = 1Fn = Fn-1 + Fn-2 , 其中 n > 2 。数据保证对于给定的 k ,一定能找到可行解。示例:输入:k = 7输出:2 解释:斐波那契数字为:1,1,2,3,5,8,13,……对于 k = 7 ,我们可以得到 2 + 5 = 7 。输入:k = 10输出:2 解释:对于 k

2022-02-03 21:22:49 516

原创 leetcode----单调栈解决下一个更大元素问题

496.下一个更大元素I、503.下一个更大元素II、739.每日温度

2022-02-02 22:20:50 813

原创 leetcode----581.最短无序连续子数组

581.最短无序连续子数组问题:给你一个整数数组 nums ,你需要找出一个连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。示例:输入:nums = [2,6,4,8,10,9,15]输出:5解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。输入:nums = [1,2,3,4]输出:0输入:nums = [1]输出:0思路:需要注意:从前往后,不一定相邻

2022-02-01 12:06:04 91

原创 leetcode----437.路径总和III(双递归 和 回溯前缀和+dfs两种解法)

437.路径总和III问题:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。示例:输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8输出:3解释:和等于 8 的路径有 3 条,如图所示。输入:root = [5,4,8,11,null,13

2022-01-31 18:20:30 978

原创 leetocde----第278场单周赛总结

文章目录5993.将找到的值乘以25981.分组得分最高的所有下标5994.查找给定哈希值的子串5993.将找到的值乘以2问题:给你一个整数数组 nums ,另给你一个整数 original ,这是需要在 nums 中搜索的第一个数字。接下来,你需要按下述步骤操作:如果在 nums 中找到 original ,将 original 乘以 2 ,得到新 original(即,令 original = 2 * original)。否则,停止这一过程。只要能在数组中找到新 original ,就对新

2022-01-30 20:20:51 457

原创 leetcode----394.字符串解码(栈)

394.字符串解码问题:给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例:输入:s = "3[a]2[bc]"输出:"aaabcbc"输入

2022-01-29 22:00:58 604

原创 leetcode----92.反转链表 II(迭代和递归两种方式)

文章目录92.反转链表II递归迭代 头插法92.反转链表II问题:给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表。示例:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]输入:head = [5], left = 1, right = 1输出:[5]思路:递归前left个节点保

2022-01-28 19:53:49 446

原创 leetcode----707.设计链表、206.反转链表(迭代和递归两种解法)

文章目录707.设计链表206.反转链表707.设计链表问题:设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个

2022-01-27 22:36:35 83

原创 leetcode----538.把二叉搜索树转换为累加树(逆中序遍历和Morrirs中序遍历+Morrirs前中序遍历模板)

538.把二叉搜索树转换为累加树问题:给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:

2022-01-26 22:28:30 358

原创 leetcode----54.螺旋数组I和59.螺旋数组II(两种解法)

文章目录剑指Offer-29.顺时针打印矩阵59.螺旋矩阵II剑指Offer-29.顺时针打印矩阵问题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]思路:模拟模拟打印的过程,初始点为矩阵左

2022-01-24 21:26:35 436

原创 leetcode----70场双周赛(5971.打折购买糖果的最小开销、5972.统计隐藏数组数目)

文章目录5971.打折购买糖果的最小开销5972.统计隐藏数组数目第一次参加周赛,费死劲AC了两道。以后希望可以坚持参加周赛。5971.打折购买糖果的最小开销问题:一家商店正在打折销售糖果。每购买 两个 糖果,商店会 免费 送一个糖果。免费送的糖果唯一的限制是:它的价格需要小于等于购买的两个糖果价格的 较小值 。比方说,总共有 4 个糖果,价格分别为 1 ,2 ,3 和 4 ,一位顾客买了价格为 2 和 3 的糖果,那么他可以免费获得价格为 1 的糖果,但不能获得价格为 4 的糖果。给你一个

2022-01-23 00:07:38 383

原创 leetcode----滑动窗口小练(209.长度最小的子数组、904.水果成篮)

文章目录滑动窗口框架209.长度最小的子数组904.水果成篮滑动窗口框架/* 滑动窗口算法框架 */void slidingWindow(string s, string t) { unordered_map<char, int> need, window; for (char c : t) need[c]++; int left = 0, right = 0; int valid = 0; while (right < s.siz

2022-01-21 22:12:11 490

原创 leetcode----双指针练习之移除元素(27、283、844、977题)

文章目录27.移除元素283.移动零844.比较含退格的字符串977.有序数组的平方27.移除元素问题:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且

2022-01-19 23:17:34 118

原创 leetcode---二分查找小练习(34、35、69、367、704题)

文章目录704.二分查找35.搜索插入位置34.在排序数组中查找元素的第一个和最后一个位置69.Sqrt(x)367.有效的完全平方数704.二分查找两种写法,搜索区间左闭右闭,while条件用 <=class Solution { public int search(int[] nums, int target) { int l = 0; int r = nums.length - 1; //注意这里 int middle = 0;

2022-01-18 23:17:33 346

原创 leetcode----前缀和数组问题(303、304、560题)

文章目录[303.区域和检索 - 数组不可变](https://leetcode-cn.com/problems/range-sum-query-immutable/)[304.二维区域和检索 - 矩阵不可变](https://leetcode-cn.com/problems/range-sum-query-2d-immutable/)560.和为K的子数组303.区域和检索 - 数组不可变问题:给定一个整数数组 nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点。

2022-01-17 23:31:48 530

原创 leetcode---DFS与BFS解决课程表问题(207、210)

207.课程表(dfs和bfs)问题:你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回

2022-01-14 21:57:28 570

原创 Java学习----ConcurrentHashMap put()源码解析

ConcurrentHashMap源码解析ConcurrentHashMap底层与HashMap类似,都是哈希表+链表+红黑树。树化阈值、链化阈值、加载因子等主要参数默认值也都相同,用sizeCtl代替了扩容阈值,但sizeCtl的含义不止表示这个。而且加载因子好像没用到。重要参数/** * hash表初始化或扩容时的一个控制位标识量。 * 负数代表正在进行初始化或扩容操作 * -1代表正在初始化 * -N 表示有N-1个线程正在进行扩容操作

2022-01-14 12:58:06 366

原创 leetcode----240.搜索二维矩阵II(二分查找和z字形查找两种解法)

240.搜索二维矩阵II问题:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GwU4jVV3-1641996713567)(https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/11/25/searchgrid2.jpg)]

2022-01-12 22:13:55 345

原创 leetcode---208.实现Trie(前缀树)(前缀树的三种实现)

208.实现Trie(前缀树)问题:Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 fal

2022-01-11 21:59:33 438

原创 leetcode----236.二叉树的最近公共祖先(后序遍历)

236.二叉树的最近公共祖先问题:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点 3 。思路:后序遍历 参考这篇题解,有助

2022-01-10 22:30:35 417

opencv3.2.0+opencv_contrib-3.2.0编译时无法自动下载完成的文件

opencv3.2.0+opencv_contrib-3.2.0编译时会有一些文件无法自动下载,从而cmake报错。这是3.2.0版本的opencv编译时使用的,其他版本无法使用。亲测可用。

2020-04-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除