一、六大设计原则 1、单一职责原则 【Single Responsibility Principle】 保证类的职责要单一。 应该有且仅有一个原因引起类的变更。 好处: 类的复杂性降低 可读性提高 可维护性提高 比那更引起的风险降低 2、里氏替换原则 【Liskov Substitution Pri ...
分类:
其他好文 时间:
2020-10-21 20:26:08
阅读次数:
18
本文主要讲述了七大排序算法,从它们的排序思想到代码实现,还分析了算法的性能,稳定性。
分类:
编程语言 时间:
2020-10-20 16:20:32
阅读次数:
25
本题解是 CF360B 的 \(n\leq 2\times10^5\) 加强版。 一开始看到这题难度 2000,那完蛋了啊,我连 2000 的题都不会做了/ll。然后发现数据范围才 $2000$/xk。 答案 \(x\) 显然有单调性,先二分起来。 考虑固定那些没有被改变的柱子。那么不难发现,一个没 ...
分类:
其他好文 时间:
2020-10-19 23:07:28
阅读次数:
32
数据结构与算法 大家都知道选择合适的数据结构将会显著地提升代码的性能。即使是像数组和集合这样相似的两种数据结构,在高负荷的运行环境下也会表现得天差地别。但是就算数据结构确定了,代码的速度也还会受另一重要因素影响,那就是算法。 那么数据结构与算法,到底难吗?说实话,难,因为很抽象,也复杂,再加上我们的 ...
分类:
编程语言 时间:
2020-10-19 23:05:28
阅读次数:
48
前言 有些小伙伴可能会有疑惑,为什么面试总喜欢问算法与数据结构问题,这是有原因的 首先,算法能看出一个程序员的 基本功 ,数据结构与算法是计算机领域里面最最基础的学科,其他更高级的领域都或多或少都涉及到算法与数据结构,说算法与数据结构为其他计算机领域的地基也不过分。而且对于校招的小伙伴们来说,可能并 ...
分类:
编程语言 时间:
2020-10-19 23:04:59
阅读次数:
46
http://codeforces.com/problemset/problem/600/E 题意:给一个树,每个点有一个颜色,让你对于每个点,求以他为根的子树中,颜色是 出现数量最多的颜色 的节点,的编号和(如果有多个出现数量最多的颜色,都算),\(n\le 10^5\) 线段树合并 用到线段树合 ...
分类:
其他好文 时间:
2020-10-19 22:36:15
阅读次数:
20
这是架构师训练营学习的第四周,主要内容是互联网系统架构(参加下面的思维导图)。这周学习最大的收获就是,进一步加深了“架构是为业务服务”这一理解,所有的架构都是为了解决你的业务问题。复杂的、架构设计良好的大型互联网系统,往往都是由小网站慢慢发展演化来的。互联网系统业务所需要的高并发、高可用,推动了其架 ...
分类:
其他好文 时间:
2020-10-19 22:17:05
阅读次数:
28
1.算法初步 贪心算法 求解最优化问题的方法,由局部最优的策略使全局结果达到最优 适用于满足最优子结构的问题,即一个问题的最优解可以由的子问题的最优解有效地构造出来 two pointers 利用问题本身与序列地特性,使用两个下标i、j对序列进行扫描,以较低地复杂度解决问题 打表 在程序中一次性计算 ...
分类:
编程语言 时间:
2020-10-18 16:44:54
阅读次数:
27
性质题好评。 对于这类题目,我们肯定要先计算出题目中给出的 \(f(x)=\max\limits_{i=1}^ndist(x,i)\)。这个东西可以通过换根 \(\text{DP}\) 在 \(O(n)\) 的时间内计算出来。 选出 \(f_x\) 最小的,以它为根,记作 \(u\)。这棵树的父亲的 ...
分类:
其他好文 时间:
2020-10-18 10:11:23
阅读次数:
19
看到不超过 $36$ 次询问显然可以想到是 $\log $ 时间复杂度。 暴力的做法自然是 \(u\) 从 $1$ 开始,每次询问 \(u\to x\) 路径上的第 $2$ 个节点,暴力跳并继续询问,期望询问次数为 \(\log n\),但链的询问次数为 \(O(n)\)。这和树剖很像,都是在链时存 ...
分类:
其他好文 时间:
2020-10-18 10:11:06
阅读次数:
17