• 2024-09-27美团一面:给定两棵二叉树 `A` 和 `B`,判断 `B` 是否是 `A` 的子结构?
    目录标题问题描述思路分析代码解释详细步骤复杂度分析问题描述给定两棵二叉树A和B,判断B是否是A的子结构。所谓子结构是指B中任意节点在A中存在相同的结构和节点值。例子1:输入:tree1=[1,7,5],tree2=[6,1]输出:false解释:tree2与tree1的一个子树
  • 2024-06-02LCS算法 java
    最优子结构(OptimalSubstructure)最优子结构性质是指问题的最优解可以由其子问题的最优解构造而成。换句话说,如果一个问题可以分解成若干子问题,并且这些子问题的最优解能够组合成原问题的最优解,那么这个问题就具有最优子结构性质。最长公共子序列(LCS)最长公共子序列问题是一个
  • 2024-05-08动态规划
    A:"1+1+1+1+1+1+1+1=?"A:"上面等式的值是多少"B:计算"8"A:在上面等式的左边写上"1+"呢?A:"此时等式的值为多少"B:很快得出答案"9"A:"你怎么这么快就知道答案了"A:"只要在8的基础上加1就行了"A:"所以你不用重新计算,因为你记住了第一个等
  • 2024-03-20动态规划
    根据百度百科,动态规划是运筹学的一个分支,是求解决策过程最优化的一个过程。本篇文章主要包含了其使用的三个前提条件(最优子结构,重叠子问题,无后效性)的理解,及通过编程解决一些简单问题过程中相关数组的构建,递推方程的求解,初值的定义。由于个人问题能力所限,对于动态规划问题的理解
  • 2024-01-21go gin 必须使用 dive 标记,它告诉 required 校验 深入到 slice、array 这样的子结构体里
    packagemainimport( "fmt" "net/http" "github.com/gin-gonic/gin")typeuserstruct{ Namestring`json:"name"binding:"required"` Emailstring`json:"email"binding:"required,email"`
  • 2023-12-21线性DP
    线性DP例题:POJ2279思考:考虑dp_{i,j,k}表示第i行,第j列,安排k去站的方案数。错误原因:安排k去站但是可能会造成重复选择k。正解:考虑dp_{a1,a2,a3,a4,a5}表示各排从左边起分别站了a1,a2,a3,a4,a5个人时,合影方案数。疑惑:Q1.为什么不用考虑某个位置究竟站的
  • 2023-10-21每日总结
    分治法将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并,得到原问题的解使用条件(1)缩小规模可以解决(2)具有最优子结构性质(3)子问题解可以合并(4)子问题相互独立二分搜索法,合并排序,快排,循环日程比赛贪心策略1.最优化问
  • 2023-08-27剑指Offer 26. 树的子结构
    题目链接:剑指Offer26.树的子结构题目描述:输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构,即A中有出现和B相同的结构和节点值。解法思路:首先这道题很明显是采取递归的形式,整体流程主要分为两步:找到A树上的某个节点与B树的根
  • 2023-08-15贪心算法入门
    贪心算法的核心思想是通过局部最优解得到或近似取得全局最优解,此时有几个待解决的问题:怎么判断题目是否应用贪心策略求解?怎么寻求局部最优与全局最优的关系?如何选择最优的贪心标准以得到全局最优/较优解?思想理解可以参阅知乎答主"冒泡"的一篇回答如何理解动态规划?
  • 2023-08-09剑指 Offer 26. 树的子结构(中等)
    题目:classSolution{public://本方法运用两层递归,非常巧妙booltraversal(TreeNode*root1,TreeNode*root2){//判断当前两个节点的递归if(root2==nullptr)returntrue;
  • 2023-07-18二叉树典型例题
    输入两棵二叉树的序列AB,判断B是否是A的子结构(NULL不是任何树的子结构) 创建了判断两个节点是否相等的以来函数,在判断是否是子结构的函数里用递归实现。
  • 2023-06-28知识点
    循环不变量用于证明迭代算法例题:用循环不变量证明选择排序正确性循环不变量:在第\(j\)次迭代执行前,\(A[1,2,...,j-1]\)已经有序初始步:在第一次迭代之前,已排序的子序列为空,因此循环不变量成立。归纳步:假设在第\(j=k\)个迭代前,\(A[1,2,..,k-1]\)有序。当执行迭代\(j=k\)时,从\(
  • 2023-06-20【计算机算法设计与分析】最优子结构和贪心选择性质的证明
    最优子结构性质(反证法)计算某问题的最优解包含的计算该问题的子问题也是最优解。事实上,如果找到子问题的更优解,则可以替换当前子问题的解,得到一个比最优解更优的解,这是一个矛盾。贪心选择性质(数学归纳法)先设一个最优解(为所给定的总元素集合,且和均按照某种有利于算法贪心进行的顺序
  • 2023-04-09动态规划的套路
    动态规划的试用前提1.无后效性一旦f(i,j)确定,就不用关心如何计算f(i,j)想要确定f(i,j),只需要知道f(i-1,j)和f(i,j-1)的值。而至于他们如何计算出来,对当前或之后的任何子问题都没有影响过去不依赖将来,将来不影响过去2.最优子结构f(i,j)定义就已蕴含了最优大问题的最优
  • 2023-03-27树的子结构
    classSolution{public:boolcheck(TreeNode*r1,TreeNode*r2){if(r2==NULL)returntrue;//如果r2为空,无论r1,都匹配成功if(r1&&r2)
  • 2023-03-14每日一练(剑指offer)树的子结构
    描述输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构)假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下,可以看出B是A的子结构示例
  • 2023-02-11《剑指Offer》-26-树的子结构
    没做过这种类型的题,树怎么比较?我好像一下子不会写怎么用迭代写法遍历一棵树嗯,看以前的笔记是用栈这一题算是树的遍历的组合题classSolution{public: boolisSubStr
  • 2023-01-14覆盖、填充、分解
    目录边形式顶点形式经典猜想英语名称边形式覆盖:一组子结构,满足图的每条边都至少在其中一个子结构中.填充:一组子结构,满足任意两个子结构都是边不交的.分解:一组子结构,既
  • 2022-12-14树的子结构
    输入两棵二叉树 A,BA,B,判断 BB 是不是 AA 的子结构。我们规定空树不是任何树的子结构。/***Definitionforabinarytreenode.*structTreeNode{*in
  • 2022-12-03每日算法之树的子结构
    JZ26树的子结构描述输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构)假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下,可以看
  • 2022-11-18算法设计与分析——贪心算法
    1、贪心算法的基本性质:贪心选择性质:所求问题的整体最优解,可以通过一系列局部最优的选择,即贪心选择来达到。贪心算法只有在具有贪心选择性质时才能保证获得整体最优解
  • 2022-11-16【code】动态规划
    了解动态规划动态规划问题的一般形式就是求最值。动态规划其实是运筹学的一种最优化方法,只不过在计算机问题上应用比较多,比如说让你求最长递增子序列呀,最小编辑距离呀等
  • 2022-10-28NOIP 前 CF*2300 左右 dp 做题记录
    iFTL独立做出形象理解为两个横放的羽毛球盒,第一个放长t1的,第二个放长t2的,然后手推可得一次共同发射之后必是平平的盒子底部,仿佛回到了最初,至此可发现子结构。基于此
  • 2022-10-19二分答案的两种形式
    壹\(f(x_1,x_2,\dots,x_n)=(a_1,a_2,\dots,a_n)\),要让\(\max\{a_1,a_2,\dots,a_n\}\)最小或\(\min\{a_1,a_2,\dots,a_n\}\)最大。如果直接DP考虑让每一个\(a_i\)
  • 2022-10-11OFF26 树的子结构
    /遍历A树,用每个节点开始与B进行比较publicbooleanisSubStructure(TreeNodeA,TreeNodeB){return(A!=null&&B!=null)&&(recur(A,B)||isSubS