
牛客算法题
文章平均质量分 50
刷题
String[ ] args
学生
展开
-
【无标题】
给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)例如: 下面这棵二叉树是对称的。原创 2023-07-22 14:56:10 · 64 阅读 · 0 评论 -
NC117 合并二叉树
已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。原创 2023-07-22 14:44:50 · 74 阅读 · 0 评论 -
BM26 求二叉树的层序遍历
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)例如:给定的二叉树是{3,9,20,#,#,15,7},该二叉树层序遍历的结果是[3],[9,20],[15,7]提示:0 <= 二叉树的结点数 <= 1500。原创 2023-07-20 20:09:16 · 97 阅读 · 0 评论 -
BM28 二叉树的最大深度
求给定二叉树的最大深度,深度是指树的根节点到任一叶子节点路径上节点的数量。最大深度是所有叶子节点的深度的最大值。(注:叶子节点是指没有子节点的节点。数据范围:0 \le n \le 1000000≤n≤100000,树上每个节点的val满足 |val| \le 100∣val∣≤100要求: 空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)原创 2023-07-20 20:06:32 · 75 阅读 · 0 评论 -
二叉树的前序、中序、后序、层序遍历
首先定义一个栈,然后将根节点首先存入栈中,同时也存入集合中,前序遍历是中左右,而栈是先进后出的数据结构,所以我们要先把右节点入栈,再把左节点入栈,这样取栈中元素时会优先取到左节点,取出来的同时将其存入集合,再将左节点的左右结点存入栈便可,直至栈中元素全为空。层序遍历按照顺序先存入集合的结点应该先输出,这符合队列先进先出的概念,首先将根节点放入队列,然后将其左右结点依次放入队列,然后左节点的左右节点又会放入队列但是左节点的左右节点肯定会在右结点之后输出,直至队列为空边就完成了树的层序遍历。原创 2023-07-20 20:01:54 · 59 阅读 · 0 评论 -
BM86 大数加法
该代码首先是创建了一个Stringbuffer对象 然后把传入的字符串转换为了字符数组 同时把两个字符数组的最大下标存储了起来 然后定义了一个代表是否进位的cout和要存储到Stringbuffer的sum 循环的条件为两个字符数组下标都小于0 循环内首先将cout的值给了sum这代表如果之前两数和大于10的话sum会+1 最巧妙的就是这里不是直接让sum+= (cs[us–] - ‘0’)+(ct[ut–] - ‘0’) 这样假如cs字符数组已经遍历完后如果仍有进位 就不需要再进行判断了。原创 2023-07-09 16:55:33 · 234 阅读 · 0 评论 -
String类和Stringbuilder类的常用方法
public void setCharAt(int index, char ch)该方法的作用是修改对象中索引值为index位置的字符为新的字符ch。该代码的作用删除字符串对象sb中索引值为1的字符,也就是删除第二个字符,剩余的内容组成一个新的字符串。该示例代码的作用是在对象sb的索引值4的位置插入false值,形成新的字符串,则执行以后对象sb的值是”TestfalseString”。该代码的作用是删除索引值1(包括)到索引值4(不包括)之间的所有字符,剩余的字符形成新的字符串。原创 2023-07-09 16:32:27 · 296 阅读 · 0 评论