上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页
摘要: 1.应用层 应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。互联网中的应用层协议很多,如域名系统 DNS、支持万维网应用的HTTP协议、支持 阅读全文
posted @ 2022-12-05 15:30 进击的胖虎 阅读(363) 评论(0) 推荐(0)
摘要: 并查集 并查集(union-find, 或 disjoint set)可以动态地连通两个点,并且可以非常快速地判断两个点是否连通。假设存在 n 个节点,我们先将所有节点的父亲标为自己;每次要连接节点 i 和 j 时, 我们可以将 i 的父亲标为 j;每次要查询两个节点是否相连时,我们可以查找 i 和 阅读全文
posted @ 2022-11-25 15:24 进击的胖虎 阅读(26) 评论(0) 推荐(0)
摘要: 图通常分为有向(directed)或无向(undirected),有循环(cyclic)或无循环(acyclic),所有节点相连(connected)或不相连(disconnected)。树即是一个相连的无向无环图,而另一种很常见的图是有向无环图(Directed Acyclic Graph,DAG 阅读全文
posted @ 2022-11-25 14:52 进击的胖虎 阅读(87) 评论(0) 推荐(0)
摘要: 树的递归 层次遍历 我们可以使用广度优先搜索进行层次遍历。注意,不需要使用两个队列来分别存储当前层的节点和下一层的节点,因为在开始遍历一层的节点时,当前队列中的节点数就是当前层的节点数,只要控制遍历这么多节点数,就能保证这次遍历的都是当前层的节点。 字典树 字典树(Trie)用于判断字符串是否存在或 阅读全文
posted @ 2022-11-24 15:53 进击的胖虎 阅读(38) 评论(0) 推荐(0)
摘要: (单)链表是由节点和指针构成的数据结构,每个节点存有一个值,和一个指向下一个节点的指针,因此很多链表问题可以用递归来处理。不同于数组,链表并不能直接获取任意节点的值, 必须要通过指针找到该节点后才能获取其值。同理,在未遍历到链表结尾时,我们也无法知道链表的长度,除非依赖其他数据结构储存长度。Leet 阅读全文
posted @ 2022-11-23 17:26 进击的胖虎 阅读(35) 评论(0) 推荐(0)
摘要: 字符串比较 字符串理解 阅读全文
posted @ 2022-11-22 17:16 进击的胖虎 阅读(18) 评论(0) 推荐(0)
摘要: C++STL 1. Sequence Containers:维持顺序的容器。 (a). vector:动态数组,是我们最常使用的数据结构之一,用于 O(1) 的随机读取。因为大部分算法的时间复杂度都会大于 O(n),因此我们经常新建 vector 来存储各种数据或中间变量。因为在尾部增删的复杂度是 阅读全文
posted @ 2022-11-22 11:05 进击的胖虎 阅读(42) 评论(0) 推荐(0)
摘要: 位运算是算法题里比较特殊的一种类型,它们利用二进制位运算的特性进行一些奇妙的优化和计算。常用的位运算符号包括:“∧”按位异或、“&”按位与、“|”按位或、“∼”取反、“<<” 算术左移和“>>”算术右移。以下是一些常见的位运算特性,其中0s和1s 分别表示只由 0 或 1 构成的二进制数字。除此之外 阅读全文
posted @ 2022-11-17 11:07 进击的胖虎 阅读(179) 评论(0) 推荐(0)
摘要: 1.最小公倍数和最大公约数 2.质数 3.随机取样 4.Boyer-Moore 投票算法 阅读全文
posted @ 2022-11-16 16:41 进击的胖虎 阅读(75) 评论(0) 推荐(0)
摘要: 我们可以将一段内存定义为一个段,用一个段地址指示段,用偏移地址访问段内的单元。这完全是我们自己的安排。 我们可以用一个段存放数据,将它定义为“数据段”; 我们可以用一个段存放代码,将它定义为“代码段”; 我们可以用一个段当作栈,将它定义为“栈段”。 我们可以这样安排,但若要让CPU按照我们的安排来访 阅读全文
posted @ 2022-11-16 15:38 进击的胖虎 阅读(53) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页