梦会绽放
梦会绽放
全部文章
分类
题解(16)
归档
标签
去牛客网
登录
/
注册
梦会绽放的博客
人若无名,专心练剑
全部文章
(共16篇)
题解 | #《剑指offer》求1+2+3+...+n#
描述: 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 思路:位运算。 不能用等差数列的求和公式,虽然除2可用移位操作,但乘法不好处理,也不能用循环累加求和。 可改进,用到循环的地方改成递归,用到i...
Java
递归
位运算
2022-01-19
1
398
题解 | #二叉搜索树的最近公共祖先#
简单容易写 思路:非递归,利用二叉搜索树的特点。左子树<根节点<右子树 若p,q都比当前结点的值小,说明最近公共祖先结点在当前结点的左子树上,继续检查左子树; 若p,q都比当前结点的值大,说明最近公共祖先结点在当前结点的右子树上,继续检查右子树; 若p,q中一个比当前结点的值大,另一个...
Java
二叉树
二叉搜索树
二分查找
2022-01-11
30
1303
题解 | #二维数组中的查找#
描述:在一个二维数组array中(每个一维数组的长度相同), 每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路:不断地收缩矩阵的边界。 具体方法: 定义四个变量代表范围,up、down、l...
Java
数组
二维数组
搜索算法
2022-01-11
0
507
题解 | #二分查找-II#
算法思想:设置 low 和 high 两个指针,mid每次指向区间中间的元素,即 mid = low+(low+high)/2 ( 这里采用此形式而不是使用 mid=(low+high)/2 ,是为了防止 int 型数据的溢出),如果 mid 所指的值大于 target,则在左半区间[low,mid...
C
二分查找
2022-01-01
0
413
题解 | #判断链表中是否有环#
算法思路:考虑使用快慢双指针。慢指针每次走一步,快指针每次走两步,如果链表有环,快、慢指针一定会相遇指向同一个节点(可理解为环型跑道速度快的一定可追上速度慢的),则返回true;如果链表无环,遍历完整个链表,返回false。 C语言实现: bool hasCycle(struct ListNode*...
C
双指针
链表
2021-12-31
0
292
题解 | #反转链表#
思路:充分利用数组的特点。 注意到题中链表长度 0<=n<=100和链表节点的值满足|val|<=100的特点, 优先考虑建立一个长度为201的计数数组arr[],初始化为0,以val值作为数组下标,arr[val]表示值为val的节点的个数,对链表进行一次遍历, 遍历到值为v...
C++
链表
数组
计数
2021-12-30
0
331
首页
上一页
1
2
下一页
末页