草庐IT

LeetCode刷题之树

全部标签

LeetCode | 572. 另一棵树的子树

LeetCode|572.另一棵树的子树OJ链接我们需要判断两棵二叉树是否相同,如果再判断的的时候不同我们就直接返回false,否则就返回true然后再检查左子树和右子树里面是否存在subRoot子树~~boolisSameTree(structTreeNode*q,structTreeNode*p){if(q==NULL&&p==NULL)returntrue;if(q==NULL||p==NULL)returnfalse;if(q->val!=p->val)returnfalse;returnisSameTree(q->left,p->left)&&isSameTree(q->right,

LeetCode刷题---两两交换链表中的节点

个人主页:元清加油_【C++】,【C语言】,【数据结构与算法】-CSDN博客个人专栏:http://t.csdnimg.cn/D9LVS         前言:这个专栏主要讲述递归递归、搜索与回溯算法,所以下面题目主要也是这些算法做的 我讲述题目会把讲解部分分为3个部分:1、题目解析2、算法原理思路讲解 3、代码实现 一、两两交换链表中的节点题目链接:两两交换链表中的节点题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head

LeetCode:459. 重复的子字符串 —【2、KMP算法】

🍎道阻且长,行则将至。🍓🌻算法,不如说它是一种思考方式🍀算法专栏:👉🏻123一、🌱459.重复的子字符串题目描述:给定一个非空的字符串s,检查是否可以通过由它的一个子串重复多次构成。来源:力扣(LeetCode)难度:简单提示:1s由小写英文字母组成示例1:输入:s=“abab”输出:true解释:可由子串“ab”重复两次构成。示例2:输入:s=“aba”输出:false🌴解题枚举子字符串长度使用两层for循环:外层for遍历子字符串长度i,所以遍历的范围是1~字符串长度一半,注意字符串长度为1是不满足返回false。对于每一个子字符串长度需要确定是否可以重复来构成原字符串,即用字符串长度对子

Java LeetCode篇-深入了解二叉树经典解法(三种方式实现:获取二叉树的最大深度)

🔥博客主页: 【小扳_-CSDN博客】❤感谢大家点赞👍收藏⭐评论✍  文章目录    1.0对称二叉树        1.1判断对称二叉树实现思路        1.2代码实现:判断对称二叉树    2.0二叉树的最大深度        2.1使用递归实现获取二叉树的最大深度思路    2.2代码实现:使用递归实现获取二叉树的最大深度    2.3使用非递归实现获取二叉树的最大深度思路    2.4代码实现:使用非递归实现获取二叉树的最大深度    2.5使用层序遍历实现获取二叉树的最大深度    2.6代码实现:使用层序遍历实现获取二叉树的最大深度    3.0二叉树的最小深度    3.1

leetcode二叉树

下面的两个题呢是比较类似的所以放在一起讲,更好的理解起来。https://leetcode.cn/problems/same-tree/description/这个题就是比较两颗树是不是一样的,这个其实看起来就只要比较当前节点,我们分析成子问题就是判断两颗树当前节点是不是一致的,比如p和q的val还有就是为空的时候我们,这样我们的代码其实就写好了。boolisSameTree(structTreeNode*p,structTreeNode*q){if(p==NULL&&q==NULL){returntrue;}if(p==NULL||q==NULL){returnfalse;}if(p->va

【贪心算法】LeetCode2071:你可以安排的最多任务数目

作者推荐[二分查找]LeetCode2040:两个有序数组的第K小乘积本文涉及的基础知识点二分查找算法合集题目给你n个任务和m个工人。每个任务需要一定的力量值才能完成,需要的力量值保存在下标从0开始的整数数组tasks中,第i个任务需要tasks[i]的力量才能完成。每个工人的力量值保存在下标从0开始的整数数组workers中,第j个工人的力量值为workers[j]。每个工人只能完成一个任务,且力量值需要大于等于该任务的力量要求值(即workers[j]>=tasks[i])。除此以外,你还有pills个神奇药丸,可以给一个工人的力量值增加strength。你可以决定给哪些工人使用药丸,但每

JAVA刷题之数组的总结和思路分享

꒰˃͈꒵˂͈꒱writeinfront ꒰˃͈꒵˂͈꒱ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈.ᴗ͈აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创CSDN 如需转载还请通知˶⍤⃝˶个人主页:xiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客系列专栏:xiaoxie的刷题系列专栏——CSDN博客●'ᴗ'σσணღ*我的目标:"团团等我💪(◡̀_◡́҂)" ( ⸝⸝⸝›ᴥ‹⸝⸝⸝)欢迎各位→点赞👍+收藏⭐️+留言📝​+关注(互三必回)! 数组篇 1. 在排序数组中查找元素的第一个和最后一

LeetCode-二叉树OJ题

1.单值二叉树 965. 单值二叉树https://leetcode.cn/problems/univalued-binary-tree/ 先判断这棵树是否为空,如果是空树则是true。再判断左子树是否为空,并且左子树的值val和当前节点的val不相同,如果这左子树不为空且val不等于root的val则返回false,再使用相同方式判断右子树。最后递归一下左右子树即可,只有左右子树有一个返回false,则整体返回false。boolisUnivalTree(structTreeNode*root){if(root==NULL)returntrue;if(root->left&&root->le

C语言刷题----循环输出图形

从12月开始,阿崽就没更新啦,阿崽刷了一波题接下来的一段时间,准备更新我的刷题的文,有的题有不同思路,欢迎各位宝子和我一起交流牛客网-----循环输出图形BC98线段图案BC99正方形图案BC100直角三角形图案BC101翻转直角三角形图案BC102带空格直角三角形图案BC103金字塔图案BC104翻转金字塔图案BC105菱形图案BC106K形图案BC107箭形图案BC108反斜线形图案BC109正斜线形图案BC110X形图案BC111空心正方形图案BC112空心三角形图案BC113数字三角形BC98线段图案 分析:1.多组输入应该使用循环(即while(scanf("%d",x)!=EOF)

LeetCode 面试题 17.01. 不用加号的加法

文章目录一、题目二、C#题解一、题目  设计一个函数把两个数字相加。不得使用+或者其他算术运算符。示例:输入:a=1,b=1输出:2提示:a,b均可能是负数或0结果不会溢出32位整数  点击此处跳转题目。二、C#题解  将a、b进行二进制加法,ai、bi表示a、b第i位的值(0或1),ci表示第i位的进位(0或1)。使用ans表示计算结果,初始情况ans各位均为0。ci=0ai=bi:ai、bi不是0就是1,因此相加后该位结果均为0,ans不做处理ai=bi=0,则计算后该位进位0;ai=bi=1,则计算后该位进位1。故ci=ai。ai!=bi:ai和bi一个为0,一个为1,相加后均不会进位,