随笔分类 - 数据结构与算法
摘要:Morris遍历 基本模板 注意业务逻辑书写的位置: 一般为:第一次访问节点。第二次访问节点。右子树为空。遍历完成。 /** * Morris遍历 模板 */ public void morris(TreeNode root) { TreeNode cur = root; while (cur !=
阅读全文
摘要:并查集 并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素 合并(Union):合并两个元素所属集合(合并对应的树) 查询(Find):查询某个元素所属集合(查询对应的树的根节点),这可以用于判断两个元素是否属于同一集合 import
阅读全文
摘要:线段树 SegmentTree 功能:计算子数组累加和 支持区间修改,新增 public class SegmentTree { int MAX; int[] arr; int[] sum; int[] lazy; int[] change; boolean[] update; public Seg
阅读全文
摘要:IndexTree 树状数组 https://oi-wiki.org/ds/fenwick/ 功能:单点修改 和 区间查询 注意: 普通树状数组维护的信息及运算要满足 结合律 且 可差分,如加法(和)、乘法(积)、异或等。 public class IndexTree { int N; int[]
阅读全文
摘要:数据结构 树、图 总结 数据结构:树(Tree) 二叉树 1. 二叉树第 i 层的节点数目最多为2 ^ (i 1) ( i =1) 2. 深度为 k 的二叉树最多有(2 ^ k) 1个节点 (k = 1) 3. 在任意一个二叉树中 N0 表示 度数为0的节点个数, N2 表示度数为2的节点个数, 则
阅读全文
摘要:1095、山脉数组中查找数组值 来自leetcode1095题 (这是一个 交互式问题 ) 给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。 如果不存在这样的下标 index,就请返回 -1
阅读全文
摘要:1. Two Sum 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 来自Leetcode第一题 示例: 给定 nums = [2, 7, 11,
阅读全文
摘要:2. Add Two Numbers 来自LeetCode第二题 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的 每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/submissions/ package com.leetcode.leetcode_003; //import javax.ma
阅读全文