自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一碗机智的糖浆的博客

大数据工程师一枚,每日刷算发题

  • 博客(91)
  • 收藏
  • 关注

原创 剑指 Offer 62. 圆圈中最后剩下的数字(java实现)--3种解法(暴力,链表,数学)LeetCode--约瑟夫环问题

文章目录题目:延伸:解法1:暴力解法2:链表解法3:数学题目:0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2限制:1 &lt

2022-03-02 23:14:39 489

原创 41. 缺失的第一个正数(java实现)--1种解法(置换)LeetCode

文章目录题目:解法1:置换题目:给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。示例 1:输入:nums = [1,2,0]输出:3示例 2:输入:nums = [3,4,-1,1]输出:2示例 3:输入:nums = [7,8,9,11,12]输出:1提示:1 <= nums.length <= 5 * 10^5-2^31 <= nums[i] <=

2022-02-18 23:35:40 404

原创 数据流重定向:标准输入<,标准输出>,标准错误输出2>

文章目录数据流重定向标准输入&标准输出&标准错误输出执行命令后显示的信息将正确和错误信息分别放入不同文件/dev/null垃圾桶黑洞设备将正确和错误的信息写入一个文件自定义错误信息标准输入<<<为什么要使用数据流重定向数据流重定向将某个命令执行后应该在屏幕上显示的数据,传输到其他地方,例如:文件或者设备–打印机标准输入&标准输出&标准错误输出将正确和错误的输出分别传输到不同的文件和设备需要用到的特殊字符:标准输入stdin:代码0,使用<或&

2022-02-17 23:19:32 916

原创 18. 四数之和(java实现)--2种解法(双指针,hash)LeetCode

文章目录题目:解法1:双指针解法2:hash题目:给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0 <= a, b, c, d < na、b、c 和 d 互不相同nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案

2022-02-17 11:56:17 313

原创 什么是shell?Bash和shell

Shell什么是shell?shell外壳,在操作系统中应用程序在最外层,就如同鸡蛋的外壳一样,因此应用程序也被称为壳程序shell。shell只是给用户提供一个操作系统的界面,必须调用其他软件(比如chmod,vi,mkdir这些都是一个个软件),我们可以通过shell来操作这些软件去调用内核执行任务。Bash和shellbash(bourne again shell)是bourne shell增强版第一个流行的shell是由steven bourne设计的,为了纪念他,把这个shell称为b

2022-02-16 18:18:28 404

原创 19. 删除链表的倒数第 N 个结点(java实现)--6种解法(暴力,双指针,hash,集合,反转链表,递归)LeetCode

文章目录题目:解法1:暴力解法2:双指针解法3:hash解法4:集合解法5:反转链表解法6:递归题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Nod

2022-02-16 12:03:11 648

原创 25. K 个一组翻转链表(java实现)--2种解法(迭代,递归)LeetCode

文章目录题目:解法1:迭代解法2:递归题目:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5]示例 2:输入:head = [1,2,3,4

2022-02-15 22:56:50 319

原创 189. 旋转数组(java实现)--3种解法(新建数组,移动k次,3次反转)LeetCode

文章目录题目:解法1:新建数组解法2:移动k次首位交换末尾交换新建数组解法3:3次反转题目:给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]示例 2:输入:nums = [-1,-100,3,99

2022-02-15 10:58:40 844

原创 26. 删除排序数组中的重复项(java实现)--1种解法(双指针)LeetCode

文章目录题目:解法1:双指针题目:给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间

2022-02-15 09:30:02 336

原创 24:两两交换链表中的节点(java实现)--2种解法(设置前驱节点,递归)LeetCode

文章目录题目:解法1:设置前驱节点解法2:递归题目:​给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]提示:链表中节点的数目在范围 [0, 100] 内0 <= Node.val <= 100​解法1:设置前驱节点

2022-02-14 11:02:43 812

原创 66. 加一(java实现)--2种解法(暴力,取模)LeetCode

文章目录题目:解法1:暴力解法1:暴力题目:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]

2022-02-14 09:38:43 172

原创 21. 合并两个有序链表(java实现)--2种解法(迭代,递归)LeetCode

文章目录题目:解法1:迭代解法2:递归题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和

2022-02-14 09:00:23 438

原创 88. 合并两个有序数组(java实现)--3种解法(暴力,不建数组--从后往前,新建数组--从前往后)LeetCode

文章目录题目:解法1:暴力解法2:不建数组(从后往前)解法3:新建数组(从前往后)题目:给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0

2022-02-13 13:41:35 1654

原创 876. 链表的中间结点(java实现)--1种解法(快慢指针)LeetCode

文章目录题目:解法1:快慢指针题目:给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans

2022-02-13 12:10:08 110

原创 01.三节点集群搭建--VM配置

1.下载CentOS71.百度搜索centos–>2.点击centos官网连接–>3.点击DVD ISO–>4.点击http://ap.stykers.moe/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso连接进下载.2.安装虚拟机管理软件Mware Workstation 15 Pro 产品文档Mac安装教程安装完成虚拟机会在桌面上生成虚拟机快捷方式3.创建虚拟机3.1 创建过程启动虚拟机管理软件,如下

2022-02-13 09:46:35 2866

原创 234. 回文链表(java实现)--3种解法(双指针,反转链表后半段,边找中间节点边反转)LeetCode

文章目录题目:解法1:双指针解法2:反转链表后半段01:递归02:不设置前驱节点03:设置前驱节点解法3:边找中间节点边反转题目:解法1:双指针 /** * 思路: * 遍历链表值存入集合 * 双指针判断回文数 */ public static boolean isPalindrome(ListNode head) { ArrayList<Integer> list = new ArrayList<>();

2022-02-12 11:22:20 693

原创 142. 环形链表 II(java实现)--2种解法(双指针,hash)LeetCode

文章目录题目:解法1:双指针解法2:hash题目:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。示例 1:输入:head = [3

2022-02-12 09:38:55 120

原创 141. 环形链表(java实现)--2种解法(双指针,hahs)LeetCode

文章目录题目:解法1:双指针解法2:hash题目:给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos = 1输

2022-02-12 09:01:53 108

原创 206. 反转链表(java实现)--3种解法(设置前驱节点,不设前驱,递归)LeetCode

文章目录题目:解法1:设置前驱节点解法2:不设置前驱节点解法3:递归题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000解法1:设置前驱节点 /**

2022-02-10 17:50:32 801

原创 15. 三数之和(java实现)--3种解法(双指针,Hash,暴力)LeetCode

文章目录题目:解法1:双指针解法2:Hash解法3:暴力题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 &l

2022-02-10 10:54:21 1343

原创 1. 两数之和(java实现)--2种解法(暴力,hash)LeetCode

文章目录题目:暴力hash两次hash一次hash题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2

2022-02-09 08:46:14 295

原创 11. 盛最多水的容器(java实现)--2种解法(左右夹逼,暴力)LeetCode

文章目录题目:解法1:左右夹逼解法2:暴力题目:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分

2022-02-09 07:15:32 144

原创 2.数组:为什么数组从0开始编号

为什么数组要从 0 开始编号,而不是从 1 开始呢? 从 1 开始不是更符合人类的思维习惯吗?从数组存储的内存模型上来看,“下标”最确切的定义应该是“偏移(offset)”。如果用 a 来表示数组的首地址,a[0] 就是偏移为 0 的位置,也就是首地址,a[k] 就表示偏移 k 个 type_size 的位置,所以计算 a[k] 的内存地址只需要用这个公式:a[k]_address = base_address + k * type_size但是,如果数组从 1 开始计数,那我们计算数组元素 a[k

2022-02-08 17:07:34 609

原创 283. 移动零(java实现)--2种解法(暴力,双指针)LeetCode

文章目录题目:解法1:暴力解法2:双指针题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]提示:1 <= nums.length <= 104-231 <= nums[i] <= 231 - 1进阶:你能尽量减少完成的

2022-02-08 16:39:41 832

原创 1.时间&空间复杂度

003.时间&空间复杂度(上)衡量你编写的算法代码的执行效率:时间&空间复杂度1.什么是时间复杂度?时间复杂度的全称是渐进时间复杂度,表示算法的执行时间与数据规模之间的增长关系。2.什么是空间复杂度?空间复杂度全称就是渐进空间复杂度(asymptotic space complexity),表示算法的存储空间与数据规模之间的增长关系。参考文章:https://www.zhihu.com/question/213872643.时间和空间复杂度分析的必要性你可能会有些疑惑,我把代

2022-02-08 09:48:50 913

原创 0.HDFS分布式文件系统

HDFS分布式文件系统一、课前准备安装VMware15虚拟化软件安装CentOS 7虚拟机3个安装3节点的hadoop2.x集群某台虚拟机节点安装IDEA(“以上参考文档”)二、课堂主题本堂课主要围绕HDFS进行讲解。主要包括三方面架构原理核心概念HDFS命令行HDFS编程三、课堂目标理解分布式思想理解并描述HDFS工作原理理解HDFS容错机制会搭建高可用集群理解HDFS如何解决大量小文件存储问题掌握如何使用java api操作HDFS四、知识要点1.

2022-02-06 15:01:32 2154

原创 Typora实用快捷键

Typora实用快捷键查看源码ctrl+/表格创建表格:Ctrl+T单元格中换行:shfit+enter新增一行:ctrl+enter切换标签页ctrl+tab清除样式ctrl+\引用ctrl+shift+q数学块ctrl+shift+m查找查找前一个:shift+enter/shift+f3下一个:enter/f3查找最近打开的typora文件:ctrl+p打开刚刚关闭的typora标签ctrl+shift+t...

2022-02-06 13:42:06 1069

原创 9. 回文数(java实现)--3种解法(暴力,数学,反转一半数字)LeetCode

文章目录题目:解法1:暴力法解法2:数学方法解法3:反转一半数字题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:fa

2022-02-05 07:47:00 1320

原创 HashMap源码分析

hash表中存放的元素是Node对象,Node对象中有hash,key,value,next节点static class Node<K,V> implements Map.Entry<K,V> { final int hash; final K key; V value; Node<K,V> next; Node(int hash, K key, V value, Node<K,V> next) {

2021-11-18 19:07:30 174

原创 51. N 皇后(java实现)--LeetCode

文章目录题目:解法1:递归(对角线规律)解法2:递归(遍历每层)解法3:递归(从下往上)题目:解法1:递归(对角线规律)/** * 思路: * 从上往下 * 核心思路:确定一个皇后的位置,列上,对角线上不能有其他皇后。右侧的对角线上的数,row-col的相同的。左侧对角线上的数,row+col相同。 * 0,0 0,1 0,2 0,3 * 1,0 1,1 1,2 1,3 * 2,0 2,1 2,2 2,3 * 主对角线(左)row+col相同。从对角线(右)row-col相同 *

2021-02-01 19:07:15 135

原创 17. 电话号码的字母组合(java实现)--LeetCode

文章目录题目:解法1:递归解法2:迭代题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits = "2"输出:["a","b","c"]提示:

2021-02-01 16:49:07 257

原创 169. 多数元素(java实现)--LeetCode

文章目录题目:解法1:排序解法2:随机数解法3:位运算解法4:分治解法5:MorreVoting解法6:map题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。解法1:排序/** *

2021-01-31 17:50:18 281

原创 78. 子集(java实现)--LeetCode

文章目录题目:解法1:递归解法2:递归(放格子)解法3:迭代解法4:位运算题目:给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10

2021-01-31 16:08:01 250

原创 50. Pow(x, n)(java实现)--LeetCode

文章目录题目:解法1:暴力解法2:递归解法3:快速幂解法4:快速幂(迭代)题目:实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25提示:-100.0 < x < 10

2021-01-31 12:57:18 202

原创 47. 全排列 II(java实现)--LeetCode

文章目录题目:解法1:递归(标记法)解法2:递归(交换法)题目:给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例 1:输入:nums = [1,1,2]输出:[[1,1,2], [1,2,1], [2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]提示:1 <= nums.length <= 8-10 <= nu

2021-01-25 19:09:16 202

原创 46. 全排列(java实现)--LeetCode

文章目录题目:解法1:递归(换位)解法2:题目:给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解法1:递归(换位)/** * 思路: * 放格子,第一个格子放所有的数 * 第二个放除第一个格子外所有的数 * 第三个格子放除1,2格子中的所有的数 * 。。。 * 最后就是所有的可能性 * * 为了实

2021-01-25 17:49:30 253

原创 77. 组合(java实现)--LeetCode

文章目录题目:解法1:递归(队列)解法2:递归(ArrayList)题目:给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]解法1:递归(队列)/** * 思路: * 如果当前队列的长度是k,就往结果集中加入 * 遍历所有可能的组合,1所有,2所有。。。 * 把当前的数加入队列 * 删除队列尾

2021-01-25 17:23:21 143

原创 106. 从中序与后序遍历序列构造二叉树(java实现)--LeetCode

解法1:递归/** * 思路: * 1 * 2 3 * 4 5 6 7 * * 中序:425 1 637 * 后序:452 673 1 * * 根据中序遍历我们可以知道根节点的位置,以及根节点的左子树和右子树各有多少个节点:425 1 637 * 在知道左子树和右子树个数的情况下,我们就能在后序遍历中找到左子树和右子树的起点和终点 * 之后递归的设置左右子树 */ public TreeNode buildTree(int[] inorder, i

2021-01-25 14:20:39 124

原创 105. 从前序与中序遍历序列构造二叉树(java实现)--LeetCode

文章目录题目:解法1:递归解法2:递归(光头哥说的On^2的情况)解法3:递归(光头哥说的用map降到On的情况)题目:根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7解法1:递归光头哥原文:https://leetcode.com/p

2021-01-25 14:02:36 293 3

原创 236. 二叉树的最近公共祖先(java实现)--LeetCode

文章目录题目:解法1:递归解法2:迭代题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 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

2021-01-25 13:13:39 361

空空如也

空空如也

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

TA关注的人

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