堆栈哲学
堆栈哲学
全部文章
题解
HankerRank(1)
leetcode(8)
Luogu刷题入门篇(5)
学习笔记(8)
教程库(2)
归档
标签
去牛客网
登录
/
注册
堆栈哲学的博客
coderAndWAer
全部文章
/ 题解
(共9篇)
题解 | 反转链表
来自专栏
解法一:迭代 在遍历链表时,将当前节点的next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。 图解: Java参考代码: /* public class ListNode { int v...
Java
C++
链表反转
链表
递归
双指针
2021-07-15
121
15607
题解 | 数独
来自专栏
解法一:递归回溯 递归参数: 因为解数独找到一个符合的条件(就在树的叶子节点上)立刻就返回,相当于找从根节点到叶子节点一条唯一路径,所以需要使用bool返回值, 终止条件: 递归的下一层的棋盘一定比上一层的棋盘多一个数,等数填满了棋盘自然就终止(填满当然好了,说明找到结果了),所以不需要终止条...
Java
递归
位运算
2021-07-15
0
988
题解 | 找到搜索二叉树中两个错误的节点
来自专栏
题意分析: 在做这道题之前,最好是先了解什么是搜索二叉树(BST) 左子树的值小于根节点 右子树的值大于根节点 子树同样满足上述规则 BST: 可以参考图解示例: 解法一:递归 因为二叉搜索树的中序遍历是正序数组,所以直接进行中序遍历,遍历的过程中直接找出异常值分析结果可得。 ...
Java
二叉树
搜索二叉树
图解
递归
数组
2021-07-14
5
1966
题解 | 加起来和为目标值的组合
来自专栏
解法一:回溯 思路步骤: 涉及到搜索所有可能的组合类型时,一般情况下都会想到用回溯法。题目中结果集不能重复,这是一个应该注意的点。 开两个数组rseult,path存储结果与可能的路径集。 处理递归终止情况:sum+=num[i]>target时,终止循环(sum为组合数和) 利用一个n...
图解
数组
递归
回溯剪枝
C++
2021-07-13
2
1212
题解 | 实现二叉树先序,中序和后序遍历
来自专栏
题意分析: 数据结构基础知识,考察二叉树的三序遍历。 二叉树的三序遍历时基础,不了解或者已经忘记的玩家可以看一下图解二叉树的三序遍历 图解: 解法一:递归 前序遍历: 访问顺序:根节点——>左子树——>右子树的方式遍历这棵树 而在访问左子树或者右子树的时候,我们按照同样的方式...
Java
递归
二叉树
栈
迭代
图解
2021-07-12
13
2500
题解 | 链表内指定区间反转
来自专栏
解法一:双指针(两次遍历) 思路步骤: 要反转局部链表,可以将该局部部分当作完整链表进行反转 再将已经反转好的局部链表与其他节点建立连接,重构链表 建议使用虚拟头节点的技巧,可以避免对头节点复杂的分类考虑,简化操作。 反转前后图示: 配图说明: 反转步骤: Java参考代码: ...
Java
双指针
递归
链表
链表反转
图解
2021-07-11
258
30838
题解 | 数字字符串转化成IP地址
来自专栏
题意分析 可以返回任何顺序的答案 IP地址不能包含前导0且仅由'.'分割 由于我们需要找出所有可能复原出的 IP 地址,因此可以考虑使用回溯的方法,对所有可能的字符串分隔方式进行搜索,并筛选出满足要求的作为答案。 也可以暴力,也许能AC。(但是...可以作为一种思路吧) 解法一:回溯+剪枝 思路...
Java
递归
回溯剪枝
暴力
2021-07-10
12
2692
题解 | 子数组的最大累加和问题
来自专栏
题意分析 理解什么是子数组? 要求子数组最大累加和 注意题目对时间复杂度和空间复杂度的要求 时间:O(N) 空间:O(1) 注意备注信息:包含了所给数据的边界范围,这对算法的选择至关重要的。 解法一:暴力解 思路步骤: 常规思路,直接两层for循环暴力枚举 找到符合题意的最大累加和 虽然理...
Java
暴力
贪心算法
递归
分治
2021-07-09
14
1119
题解 | 二叉树的最大路径和
来自专栏
分析 读题: 题目难点在于正确理解题意 一棵二叉树 注意题目对路径的定义:开始和结束结点可以是任意的结点。 路径要求唯一,不能重复 任意给出一棵二叉树的两个结点,路径指的是:分别从这两个结点向上走,找到 最近的公共祖先 结点而形成的路径。只有这样的定义下,路径才是唯一确定的。 考虑如...
Java
二叉树
DFS
递归
动态规划
2021-07-08
3
1720