🍎道阻且长,行则将至。🍓🌻算法,不如说它是一种思考方式🍀算法专栏:👉🏻123一、🌱459.重复的子字符串题目描述:给定一个非空的字符串s,检查是否可以通过由它的一个子串重复多次构成。来源:力扣(LeetCode)难度:简单提示:1s由小写英文字母组成示例1:输入:s=“abab”输出:true解释:可由子串“ab”重复两次构成。示例2:输入:s=“aba”输出:false🌴解题枚举子字符串长度使用两层for循环:外层for遍历子字符串长度i,所以遍历的范围是1~字符串长度一半,注意字符串长度为1是不满足返回false。对于每一个子字符串长度需要确定是否可以重复来构成原字符串,即用字符串长度对子
🔥博客主页: 【小扳_-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
下面的两个题呢是比较类似的所以放在一起讲,更好的理解起来。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
作者推荐[二分查找]LeetCode2040:两个有序数组的第K小乘积本文涉及的基础知识点二分查找算法合集题目给你n个任务和m个工人。每个任务需要一定的力量值才能完成,需要的力量值保存在下标从0开始的整数数组tasks中,第i个任务需要tasks[i]的力量才能完成。每个工人的力量值保存在下标从0开始的整数数组workers中,第j个工人的力量值为workers[j]。每个工人只能完成一个任务,且力量值需要大于等于该任务的力量要求值(即workers[j]>=tasks[i])。除此以外,你还有pills个神奇药丸,可以给一个工人的力量值增加strength。你可以决定给哪些工人使用药丸,但每
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#题解一、题目 设计一个函数把两个数字相加。不得使用+或者其他算术运算符。示例:输入: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,相加后均不会进位,
代码随想录算法训练营第四十八天|LeetCode121.买卖股票的最佳时机、122.买卖股票的最佳时机II文章链接:买卖股票的最佳时机买卖股票的最佳时机II视频链接:买卖股票的最佳时机买卖股票的最佳时机II1.LeetCode121.买卖股票的最佳时机1.1思路在本题中我们要通过买卖一次股票而赚的最多。股票买卖问题是动态规划解决的比较经典的一系列,可能这题也能用贪心或者别的思路解决,但这些只能解决具体场景的题目,动态规划是解决一系列的题目。dp数组及其下标的含义:第i天有两个状态买与不买这只股票,因此需要定义二维数组dp[i][0]:表示持有这只股票,所得的最大现金;dp[i][1]:表示不持
LeetCode|110.平衡二叉树OJ链接首先计算出二叉树的高度然后计算当前节点的左右子树的高度,然后判断当前节点的左右子树高度差是否超过1,最后递归地检查左右子树是否也是平衡的。//计算二叉树的高度intheight(structTreeNode*root){if(root==NULL)returnNULL;intleft=height(root->left);intright=height(root->right);returnleft>right?left+1:right+1;}//判断是否是平衡二叉树boolisBalanced(structTreeNode*root){if(roo
Leetcode704.二分查找题目链接关键词:二分查找循环不变量区间问题思路:二分查找的应用,关键在于循环过程中区间的维护,记住循环不变量原则,在这个问题中循环不变量是区间的定义,注意左闭右开和左开右闭的区别classSolution{public:intsearch(vector&nums,inttarget){intleft=0,right=nums.size();while(lefttarget){right=middle;}elseleft=middle+1;}}return-1;}};在初始化left与right变量时就应该想清楚区间的定义是什么,如上采用左闭右开classSolu
目录题1:6070.计算字符串的数字和题目描述解题思路代码编写(Java版本)题2:2244.完成所有任务需要的最少轮数题目描述解题思路代码编写(Java版本)题3:2245.转角路径的乘积中最多能有几个尾随零题目描述解题思路代码编写(Java版本)题4:2246.相邻字符不同的最长路径题目描述解题思路代码编写(Java版本)Hello朋友们😋,我是秋刀鱼🐟,一只活跃于Java区与算法区的新人博主~欢迎大家加入高校算法学习社区🏰:https://bbs.csdn.net/forums/Suanfa,社区里大佬云集,大家互相交流学习!今天给大家带来LeetCode289场单周赛的题目解析,并分享