
算法刷题
zhou_pp
初入社会,请多多指教
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
并查集---
是一种数据结构,用来处理一些不交集的合并和查询问题,即得到一系列没有重复元素的集合 满足:朋友的朋友就是我的朋友的原则,通过关系进行串联 遍历查找的效率不高,引入路径压缩,进行优化算法 连通分量 适用问题: (1)图的连通性问题 (2)集合的个数:求得的是并查集中连通分量的数目 例题:岛屿数量 package Connect; public class Solution2 { class UnionFind{ int count;//集合的个数 i原创 2021-09-16 21:21:34 · 231 阅读 · 0 评论 -
优先队列PriorityQueue —— Comparator
按照自定义的方式来对队列中的数据进行动态排序,默认最大堆,即队列top为最大的元素。 可以重写PriorityQueue的Comparator进行排序定义。 堆是一颗顺序存储的完全二叉树。、 1.最小堆 每个节点的关键字都不大于起孩子节点的关键字 2.最大堆 (默认) 每个结点的关键字都不小于其孩子结点的关键字 // 优先队列-最小队列,可以不设置队列大小 // peek() 取出最上层元素 // remove() 删除最上层元素 package.原创 2021-09-15 20:26:44 · 744 阅读 · 0 评论 -
二叉树:路径和是否存在
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明:叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...原创 2019-07-23 16:55:13 · 746 阅读 · 0 评论 -
(二叉树)从中序与后序遍历序列构造二叉树
后序遍历的最后一个值是树的根节点,在中序遍历中找到该节点,根据中序遍历的特点(左子树-根-右子树),所以在中序遍历中,把根节点左边的值都放进左子树递归,把根节点右边的值都放进右子树递归。 class Solution { public TreeNode buildTree(int[] inorder, int[] postorder) { int len1=inord...原创 2019-07-24 09:38:18 · 527 阅读 · 0 评论 -
(重建二叉树)从前序与中序遍历序列构造二叉树
根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder =[3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3 / \ 9 20 / \ 15 7 分析:先序遍历的顺序是(根-左子树-右子树),中序遍历的顺序是(左子树...原创 2019-07-24 10:18:18 · 273 阅读 · 0 评论 -
最长回文子串(力扣(LeetCode)-5)
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-palindromic-subst...原创 2019-07-25 14:27:09 · 192 阅读 · 0 评论