随笔分类 - 数据结构
摘要:一、滑动窗口题型模板 二、LeetCode 中 几个滑动窗口套用模板实现 1、 76. Minimum Window Substring https://leetcode.com/problems/minimum-window-substring/description/ 2、3 Longest S
阅读全文
摘要:一、& 与 a & -a : 可以计算出 a 的二进制形式的第一个 1 出现的位置。 eg: 6 & -6 = 0110 & 1010 = 0010
阅读全文
摘要:一、n-1发生了什么 ①、二进制数 n 变成 n-1 后,如果最后一位是 0,将向前一位借 2,2-1=1。最后一位为1。如果前一位为0,将继续向前一位借2,加上本身少掉的1.则变为1。一直遇到1。减为0. 所以 二进制 xxxx10000 - 1 = xxxx01111 ②、n&n-1 按照上述
阅读全文
摘要:1、思路: ①、首先找到数组中的最大值,然后新建一个初始值为 0 的数组 bucket, 此数组的长度是数组最大值+1,新建的这个数组中的下标值存放的元素就是原数组的数据值。 ②、找到最大值后,开始遍历原数组,把原数组的数据加入bucket的下表中,bucket[i],每当有1个i bucket[i
阅读全文
摘要:摘自: https://www.cnblogs.com/DSNFZ/articles/7623522.html https://blog.csdn.net/dm_vincent/article/details/7655764 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成
阅读全文
摘要:1、 采用传统的递归 (O(n)的空间复杂度) 2、采用 Stack + 迭代的方式 (O(n)的空间复杂度) ①、先序遍历 优化: Stack 只用于存储 Right 节点。 ②、中序遍历 优化 ③、后续遍历 a、采用 Stack 进行压栈操作,同时采用一个 Map 记录该节点的右孩子是否被访问过
阅读全文