1. 关于“单调栈”这个数据结构 单调栈(monotonous stack)是指栈的内部从栈底到栈顶满足单调性的栈结构。 其实单调栈就是“栈 + 维护单调性”。 1.1 入栈操作 此处假设单调栈是一个从栈底到栈顶单调递减的栈。为了避免分歧,后文的单调递增和单调递减均指从栈底到栈顶的顺序,后面不再说明 ...
分类:
其他好文 时间:
2021-05-24 10:45:00
阅读次数:
0
为一个特定的任务选择最好的数据结构和算法是开发高性能软件的一个关键。 1. Collection Collection接口为线性表,向量,栈,队列,优先队列以及集合定义了共同的操作。 Java collection框架中定义的所有接口和类都分组在java.util包中。 Java collectio ...
分类:
其他好文 时间:
2021-05-24 10:26:43
阅读次数:
0
之前我们对Java集合框架一些常见的面试题做了一个总结式的回答:【29期】Java集合框架 10 连问,你有被问过吗?这篇开始针对29期中的一些比较重要的问题做详细的解答。 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的 ...
分类:
其他好文 时间:
2021-05-24 10:26:20
阅读次数:
0
最近在LeekCode用java写一些算法时,经常遇到要使用栈和队列结构,使用栈的话,Stack已经不被推荐使用了,所以栈和队列我们通常都是用LinkedList这种双链表结构实现。Linkedlist是一个双向链表,操作起来非常方便,java也封装了很多的方法在这个双向链表里面。 题目:使用栈,L ...
分类:
其他好文 时间:
2021-05-24 10:25:56
阅读次数:
0
进程和线程管理中的算法进程和线程在调度时候出现过很多算法,这些算法的设计背景是当一个计算机是多道程序设计系统时,会频繁的有很多进程或者线程来同时竞争 CPU 时间片。 那么如何选择合适的进程/线程运行是一项艺术。当两个或两个以上的进程/线程处于就绪状态时,就会发生这种情况。如果只有一个 CPU 可用 ...
分类:
编程语言 时间:
2021-05-24 10:24:41
阅读次数:
0
服务端使用长整型(Int64)的数字,在浏览器端使用JS的number类型接收时,当这个实际值超过 (2^53-1)时,JS变量的值和实际值就会出现不相等的问题。常见场景比如使用雪花算法生成Id。 在服务端,数字长整型有64位(bit),第一位为符号位,后边为数字位。 JS引擎中第一位为符号位,第二 ...
分类:
Web程序 时间:
2021-05-24 10:16:38
阅读次数:
0
[...new Set(arr)] 解析:ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成 Set 数据结构。 const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach(x => ...
分类:
编程语言 时间:
2021-05-24 10:13:29
阅读次数:
0
远程主机指纹的作用:用于验证远程主机确实是我以前连接过的主机,而不是被DNS劫持的主机。 远程主机:ubuntu20.04系统 本地:wsl 2 的debian 10系统 所谓的主机指纹:把远程主机的公钥用一种hash算法输出一个较短的数串。 这就涉及到2个材料:1、远程主机的公钥。2、双方公用的哈 ...
分类:
其他好文 时间:
2021-05-24 10:10:47
阅读次数:
0
排序方法 平均情况 最坏情况 最好情况 空间复杂度 稳定性 复杂性 直接插入排序 O(n^2) O(n^2) O(n) O(1) 稳定 简单 希尔排序 O(nlog2n) O(nlog2n) O(1) 不稳定 较复杂 冒泡排序 O(n^2) O(n^2) O(n) O(1) 稳定 简单 快速排序 O ...
分类:
编程语言 时间:
2021-05-24 10:05:48
阅读次数:
0
对于包含n个数的数组而言,快速排序是一种最坏时间复杂度为O(n2)的排序算法。虽然最环情况很差,但是快速排序往往是排序时的最优选择,因为期望时间复杂度为Θ(nlogn),并且常数很小。 快速排序的描述: 快速排序使用了分治的思想,下面是快速排序的分治步骤: 分解:将数组A[l, r] 划分为A[l, ...
分类:
编程语言 时间:
2021-05-24 09:57:04
阅读次数:
0