AcKei
AcKei
全部文章
题解
设计模式(10)
归档
标签
去牛客网
登录
/
注册
AcKei的博客
彼此奔赴,更高处见
全部文章
/ 题解
(共20篇)
二叉树的公共祖先
来自专栏
普通二叉树的公共祖先 只能通过深度遍历来找。 public class Solution { /** * * @param root TreeNode类 * @param o1 int整型 * @param o2 int整型 * @ret...
2021-02-07
0
645
二叉搜索树与双向链表
来自专栏
核心就是中序遍历和辅助节点pre来保存上一个遍历的节点。先右遍历,再处理节点,后左遍历,这样能返回正序的链表。 public class Solution { TreeNode pre = null; public TreeNode Convert(TreeNode pRootOfT...
2021-02-07
0
498
滑动窗口的最大值
来自专栏
参考力扣题解区:用一个双端队列来充当一个滑动窗口,每次在push进去的时候都保证队首是元素最大的,max()直接拿出队首返回即可。 import java.util.*; public class Solution { public ArrayList<Integer> maxI...
2021-02-05
0
557
从尾到头打印链表
来自专栏
递归 import java.util.ArrayList; public class Solution { ArrayList<Integer> res = new ArrayList<>(); public ArrayList<Integer>...
2021-02-03
0
513
二叉树搜索树的后序遍历数组
来自专栏
利用前序遍历。后序数组唯一确定的就是最后一个元素必是二叉搜索树的根节点。 public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence == null || s...
2021-02-02
0
547
哈希表求出数组中第一个重复的数字
来自专栏
哈希表 自己的写法: import java.util.*; public class Solution { public boolean duplicate(int numbers[],int length,int [] duplication) { if(length =...
2021-02-01
0
613
二进制中1的个数
来自专栏
举个栗子:1100 将它减1后为1011,再拿来跟原数按位与,为 1000,后面的1消除了。有多少个1就做多少次消除,每次消除用count记录下来。 public class Solution { public int NumberOf1(int n) { int count...
2021-01-31
0
475
详解重构二叉树
本质上就是前序遍历的框架。前序数组的第一个是根节点,找到中序数组它的索引 (可用map降低时间复杂度),中序数组以它为中心,左边是左子树,右边是右子树。将大问题化成小问题,利用递归。 而指针可以在每轮递归中作为通信的工具。上一层递归告诉下一层“你该缩小范围找了”。left每一层递归返回给上一层的是刚...
2020-12-12
0
698
双指针解决链表公共节点
假设链表一走到相同节点的距离为a,链表二为b,从相同节点到末尾的距离为c;我们可以让两个链表走相同的路,若走到相同节点,就返回。算法核心: a+b+c = b+c+c就算它们走完都没有相同节点,也不碍事,返回的都是null也是相等的。 public ListNode FindFirstCom...
2020-12-07
0
594
动态规划解决最大累加和问题
使用动态规划法,定义一个dp数组记录从第一个数字开始到当前数字的最大累加和。每当前一个累加和大于0时,进行dp[i]的更新。最后遍历dp数组,取最大的dp[i]返回。过程可以看注释: public int maxsumofSubarray (int[] arr) { // w...
2020-12-07
2
698
首页
上一页
1
2
下一页
末页