代码编织梦想

代码随想录算法训练营day19||二叉树part06、654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树-爱代码爱编程

654.最大二叉树  给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的 最大二叉树 。 解释:递归调用如下所示: - [3,

代码随想录算法训练营day23|c++二叉树part.9|669.修建二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树-爱代码爱编程

文章目录 669.修建二叉搜索树递归法思路伪代码CPP代码 108.将有序数组转换为二叉搜索树递归伪代码CPP代码 538.把二叉搜索树转换为累加树思路递归伪代码递归CPP代码迭代法

代码随想录算法训练营day20|c++二叉树part.6|654.最大二叉树、617. 合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树-爱代码爱编程

文章目录 654.最大二叉树思路伪代码优化代码CPP代码 617. 合并二叉树思路伪代码CPP代码改变遍历顺序定义新二叉树 700.二叉搜索树中的搜索搜索树的特性思路递归法代码迭代法代码CPP代码

代码随想录算法训练营day22||二叉树part08、● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点-爱代码爱编程

235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树:  root = [6,2,8,0,4

代码随想录算法训练营day21|c++二叉树part.7|530.二叉搜索树的最小绝对差、501. 二叉搜索树中的众数、236.二叉树的最近公共祖先-爱代码爱编程

文章目录 530.二叉搜索树的最小绝对差思路直白思路利用二叉搜索树特性 直白想法CPP代码双指针法 501. 二叉搜索树中的众数视为普通二叉树伪代码CPP代码 利用二叉搜索树的特性伪代码C

代码随想录算法训练营day22|c++二叉树part.8|235.二叉搜索树的最近公共祖先、450.删除二叉搜索树中的结点-爱代码爱编程

文章目录 235.二叉搜索树的最近公共祖先思路伪代码实现CPP代码迭代法的CPP代码 701.二叉搜索树中的插入操作思路伪代码递归函数有返回值递归函数不要返回值迭代方法 CPP代码递归有返回值递归

代码随想录算法训练营第38天| leetcode 509. 斐波那契数、leetcode 70. 爬楼梯、leetcode 746. 使用最小花费爬楼梯-爱代码爱编程

文章目录 Leetcode 509. 斐波那契数Leetcode 70. 爬楼梯Leetcode 746. 使用最小花费爬楼梯 Leetcode 509. 斐波那契数 题

代码随想录算法训练营第20天 | 654.最大二叉树 + 617.合并二叉树 + 700.二叉搜索树中的搜索 + 98.验证二叉搜索树-爱代码爱编程

今日任务  654.最大二叉树   617.合并二叉树   700.二叉搜索树中的搜索   98.验证二叉搜索树  654.最大二叉树 - Medium 题目链接:. - 力扣(LeetCode) 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:

代码随想录算法训练营第57天| leetcode 647. 回文子串、leetcode 516.最长回文子序列-爱代码爱编程

文章目录 Leetcode 647. 回文子串Leetcode 516.最长回文子序列 Leetcode 647. 回文子串 题目链接:Leetcode 647. 回文子

代码随想录算法训练营第28天| leetcode 93.复原ip地址、78.子集、90.子集ii-爱代码爱编程

目录 Leetcode 93.复原IP地址 Leetcode 78.子集 Leetcode 90.子集II Leetcode 93.复原IP地址 题目链接:Leetcode 93.复原IP地址 题目描述:给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址 正好由四个整数(每

代码随想录算法训练营第55天| leetcode 583. 两个字符串的删除操作、leetcode 72. 编辑距离-爱代码爱编程

文章目录 Leetcode 583. 两个字符串的删除操作Leetcode 72. 编辑距离 Leetcode 583. 两个字符串的删除操作 题目链接:Leetcode

代码随想录算法训练营day55 | 583. 两个字符串的删除操作、72. 编辑距离-爱代码爱编程

583. 两个字符串的删除操作 1、确定dp数组以及下标的含义 dp[i][j]:以i-1为结尾的字符串word1,和以j-1位结尾的字符串word2,想要达到相等,所需要删除元素的最少次数。 2、确定递推公式 (1)当word1[i - 1] 与 word2[j - 1]相同的时候,dp[i][j] = dp[i - 1][j - 1]; (2

代码随想录算法训练营day27 | 39. 组合总和、40.组合总和ii、131.分割回文串-爱代码爱编程

39. 组合总和 未剪枝 class Solution: def __init__(self): self.result = [] self.path = [] def backtracking(self, candidates, target, sum, startIndex): if

代码随想录算法训练营第36天| leetcode 435. 无重叠区间、763.划分字母区间、56. 合并区间-爱代码爱编程

文章目录 Leetcode 435. 无重叠区间Leetcode 763.划分字母区间Leetcode 56. 合并区间 Leetcode 435. 无重叠区间 题目链接

代码随想录算法训练营第33天| leetcode1005.k次取反后最大化的数组和、134. 加油站、135. 分发糖果-爱代码爱编程

文章目录 Leetcode 1005.K次取反后最大化的数组和Leetcode 134. 加油站Leetcode 135. 分发糖果 Leetcode 1005.K次取反后

代码随想录day9:栈与队列part1,互相实现-爱代码爱编程

文章目录 day9:栈与队列part1232.用栈实现队列225.用队列实现栈 day9:栈与队列part1 今天栈与队列基础 简单的互相实现,拿纸画一下模拟过程即可 232.用栈

代码随想录day10:栈与队列part2,栈使用场景专题-爱代码爱编程

文章目录 day10:栈与队列part220.有效的括号1047.删除字符串中的所有相邻重复项150.逆波兰表达式求值 day10:栈与队列part2 20.有效的括号 不匹配的情况

代码随想录 day10 第五章 栈与队列part01-爱代码爱编程

今日任务: ●  理论基础 ●  232.用栈实现队列 ●  225. 用队列实现栈 1. 理论基础 栈 先进后出队列 先进先出 2. 用栈实现队列 关联 leetcode 232.用栈实现队列 两个栈模拟队列【负负得正】 入栈 存储队列元素出栈 将入栈元素全部存储到此处,实现顺序翻转

代码随想录 day11 第五章 栈与队列part02-爱代码爱编程

今日内容: ●  20. 有效的括号 ●  1047. 删除字符串中的所有相邻重复项 ●  150. 逆波兰表达式求值 1. 有效的括号 关联 leetcode 20. 有效的括号 思路 使用栈来实现有序的左右括号匹配压入对应的右括号,提升匹配对比效率有效的括号一定是左括号先出现 题解 func isValid(s str

代码随想录 day13 第五章 栈与队列part03-爱代码爱编程

今日内容: ●  239. 滑动窗口最大值 ●  347.前 K 个高频元素 ●  总结 1. 滑动窗口最大值 (一刷至少需要理解思路) 关联 leetcode 239. 滑动窗口最大值 思路 使用单调队列来实现 单调队列: 整个队列元素 单调递减/递增 保证队列里的元素 从大到小 排列