
算法题解
AKA_SUPERROSE
重新开始,从心出发
展开
-
算法题解-求二叉树的深度
知识点:二叉树,递归题目来源:nc274输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度,根节点的深度视为 1 。数据范围:节点的数量满足 0≤n≤1000 ,节点上的值满足 0≤val≤1000空间复杂度 O(1) ,时间复杂度 O(n)假如输入的用例为{1,2,3,4,5,#,6,#,#,7},那么如下图:测试数据示例1输入:{1,2,3,4,5,#,6,#,#,7}返回值:4示例2输入:{}返原创 2022-04-08 23:42:40 · 729 阅读 · 0 评论 -
算法题解-判断一个链表中是否有环
知识点:链表,双指针题目来源:nc4描述:判断给定的链表中是否有环。如果有环则返回true,否则返回false。数据范围:链表长度 0≤n≤100000 ,链表中任意节点的值满∣val∣<=100000要求:空间复杂度 O(1),时间复杂度 O(n)输入分为两部分,第一部分为链表,第二部分代表是否有环,然后将组成的head头结点传入到函数里面。-1代表无环,其它的数字代表有环。示例1输入:{3,2,0,-4},1返回值:true说明:第一部分{3,2,0,-4}代表一个链表原创 2022-04-06 17:27:32 · 413 阅读 · 0 评论 -
算法题解-求最大公约数_辗转相除法
题目:如果有一个自然数 a 能被自然数 b 整除,则称 a 为 b 的倍数, b 为 a 的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。算法思路:辗转相除算法可利用递推的思想实现,即对两数不断取模(的余数)并递推更新变量使a=b,b=余数,当余数为0时最大公约数便自然保留在变量a,并且算法无需判定a,b的大小关系,因为a,b的余数一定是小于等于min(a,b)代码实现:int gcd(int a, int b) { while(原创 2022-03-31 18:49:31 · 327 阅读 · 0 评论