算法
陆柒也是魏哲
这个作者很懒,什么都没留下…
展开
-
leetcode932 漂亮数组
闲话 今天想找几道分治的题目做做,有些题不用分治的思想做,想光找到直接规律真的有点难,但是分治思想也需要清晰的逻辑才能考虑清楚,还需要多加练习。 题意 对于某些固定的 N,如果数组 A 是整数 1, 2, …, N 组成的排列,使得: 对于每个 i < j,都不存在 k 满足 i < k < j 使得 A[k] * 2 = A[i] + A[j]。 那么数组 A 是漂亮数组。 给定 N,返回任意漂亮数组 A(保证存在一个)。 思路分析 分析满足条件的数的规则 要不存在A[k] * 2 =原创 2020-09-23 15:58:29 · 68 阅读 · 0 评论 -
leetcode968 监控二叉树
题意 给定一个二叉树,我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 思路分析 根据节点的左右子节点的状态来判断自身的状态 每个节点可能有三种状态 不可见 可见但没放置监视器 放置监视器 后序遍历,当节点的状态为3时监视器数量+1 1.)若左右子节点中有一个为状态1(不可见),则当前节点状态为3(放置监视器) 2.) 若左右子节点有一个为状态3(放置监视器),则当前节点状态为2(可见但没放置监视器) 3.)若左右子原创 2020-09-22 01:52:21 · 73 阅读 · 0 评论 -
LeetCode 685 冗余连接II 并查集的应用
首先理解题意树为N个节点N-1条边且只有一个入度为0的节点的有向图结构,题目输入为在一颗树上加了一条边的有向图,输出为一条边是原创 2020-09-20 19:32:16 · 62 阅读 · 0 评论 -
解数独(深搜+回溯)
leetcode.37 解数独 本题hard难度但是解体思路就是很普通的深搜+回溯 需要考虑的点是递归的深搜进行的条件和状态的记录 用boolean数组来记录每个行、列、九宫格里1-9的存在情况 先遍历一次原数组,记录空格的位置并对boolean数组进行初始化 然后对空格位置进行dfs。 class Solution { private boolean[][] line = new boolean[9][9]; private boolean[][] column = new boolean原创 2020-09-16 14:03:50 · 132 阅读 · 0 评论 -
二叉树遍历的迭代实现
二叉树前、中、后序遍历的迭代实现 前序 前序顺序为父左右 利用栈保证遍历的顺序,先将根节点入栈 while循环 将栈顶节点出栈输出,再依次把该节点的右节点和左节点(存在的话)入栈 public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<>(); if(root==null) return res; S原创 2020-09-14 19:40:50 · 78 阅读 · 0 评论