JZ68二叉搜索树的最近公共祖先描述给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。1.对于该题的最近的公共祖先定义:对于有根树T的两个节点p、q,最近公共祖先LCA(T,p,q)表示一个节点x,满足x是p和q的祖先且x的深度尽可能大。在这里,一个节点也可以是它自己的祖先.2.二叉搜索树是若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值3.所有节点的值都是唯一的。4.p、q为不同节点且均存在于给定的二叉搜索树中。数据范围:3思路:非递归,利用二叉搜索树的特点。左子树若p,q都比当前结点的值小,说明最近公共祖先结
JZ69跳台阶描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。数据范围:1\leqn\leq401≤n≤40要求:时间复杂度:O(n)O(n),空间复杂度:O(1)O(1)方法1递归思路题目分析,假设f[i]表示在第i个台阶上可能的方法数。逆向思维。如果我从第n个台阶进行下台阶,下一步有2中可能,一种走到第n-1个台阶,一种是走到第n-2个台阶。所以f[n]=f[n-1]+f[n-2],那么初始条件了,f[0]=f[1]=1。所以就变成了:f[n]=f[n-1]+f[n-2],初始值f[0]=1,f[1]=1代码if(t
JZ69跳台阶描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。数据范围:1\leqn\leq401≤n≤40要求:时间复杂度:O(n)O(n),空间复杂度:O(1)O(1)方法1递归思路题目分析,假设f[i]表示在第i个台阶上可能的方法数。逆向思维。如果我从第n个台阶进行下台阶,下一步有2中可能,一种走到第n-1个台阶,一种是走到第n-2个台阶。所以f[n]=f[n-1]+f[n-2],那么初始条件了,f[0]=f[1]=1。所以就变成了:f[n]=f[n-1]+f[n-2],初始值f[0]=1,f[1]=1代码if(t
【C语言蓝桥杯每日一题】——排序😎前言🙌排序🙌总结撒花💞 😎博客昵称:博客小梦😊最喜欢的座右铭:全神贯注的上吧!!!😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘前言🙌 哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C语言蓝桥杯每日一题】——排序~这里利用了数组指针的方法知识,都是精华内容,可不要错过哟!!!😍😍😍排序🙌
【C语言蓝桥杯每日一题】——排序😎前言🙌排序🙌总结撒花💞 😎博客昵称:博客小梦😊最喜欢的座右铭:全神贯注的上吧!!!😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘前言🙌 哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C语言蓝桥杯每日一题】——排序~这里利用了数组指针的方法知识,都是精华内容,可不要错过哟!!!😍😍😍排序🙌
JZ71跳台阶扩展问题描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。数据范围:1\len\le201≤n≤20进阶:空间复杂度O(1)O(1),时间复杂度O(1)O(1)方法1动态规划思路:对于最后一级台阶,我们可以由倒数第二级台阶跳1步,也可以由倒数第三级太极跳两步,即f(n)=f(n−1)+f(n−2)+...+f(n−(n−1))+f(n−n)=f(0)+f(1)+f(2)+...+f(n−1)f(n)=f(n-1)+f(n-2)+...+f(n-(n-1))+f(n-n)=f(0)+f(1)+f(2)+.
JZ71跳台阶扩展问题描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。数据范围:1\len\le201≤n≤20进阶:空间复杂度O(1)O(1),时间复杂度O(1)O(1)方法1动态规划思路:对于最后一级台阶,我们可以由倒数第二级台阶跳1步,也可以由倒数第三级太极跳两步,即f(n)=f(n−1)+f(n−2)+...+f(n−(n−1))+f(n−n)=f(0)+f(1)+f(2)+...+f(n−1)f(n)=f(n-1)+f(n-2)+...+f(n-(n-1))+f(n-n)=f(0)+f(1)+f(2)+.
JZ73翻转单词序列描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“nowcoder.aamI”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“Iamanowcoder.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?数据范围:1\len\le100\1≤n≤100进阶:空间复杂度O(n)\O(n),时间复杂度O(n)\O(n),保证没有只包含空格的字符串思路1.将字符串按照空格进行分割,返回一个数组2.对数组进行反向遍历后存储到St
JZ73翻转单词序列描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“nowcoder.aamI”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“Iamanowcoder.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?数据范围:1\len\le100\1≤n≤100进阶:空间复杂度O(n)\O(n),时间复杂度O(n)\O(n),保证没有只包含空格的字符串思路1.将字符串按照空格进行分割,返回一个数组2.对数组进行反向遍历后存储到St
JZ79判断是不是平衡二叉树描述输入一棵节点数为n二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(BalancedBinaryTree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。思路左右两个子树的高度差的绝对值不超过1左右两个子树都是一棵平衡二叉树代码packageesay.JZ79判断是不是平衡二叉树;classTreeNode{intval=0;TreeNodeleft=null;TreeNoderight=null;publicTreeNode(intval){