12 2018 档案
摘要:切换服务器步骤: 1、购买好云服务器,并同步好镜像2、配置好Jenkins并同步代码3、测试下能否正常访问4、负载均衡器把刚购买的服务器加上去5、设置好权重6、观察nginx日志 有一台服务器需要换成内网的,下面说明一下切换流程,以阿里云为例 【购买ECS服务器】 创建一个跟旧的服务器配置一样的服务
阅读全文
摘要:SSL证书:SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。 SSL证书切换步骤(新增类似): 【证书购买】
阅读全文
摘要:A:为什么MySQL数据库要用B+树存储索引? Hash的查找速度为O(1),而树的查找速度为O(log2n),为什么不用Hash作为数据库的存储索引呢? 树的话,无非就是前中后序遍历、二叉树、二叉搜索树、平衡二叉树,更高级一点的有红黑树、B树、B+树。 【红黑树】 红黑树也是平衡树中的一种,它复杂
阅读全文
摘要:题解1 - 左右分治 根据题意,有 result[i]=left[i]⋅right[i], 其中 left[i]=∏j(从左到右累乘), right[i]=∏j(从右到左累乘). 即将最后的乘积分为两部分求解,首先求得左半部分的值,然后求得右半部分的值。最后将左右两半部分乘起来即为解。 C++: 源
阅读全文
摘要:首先可以想到逐步移位,但是这种方法显然太浪费时间,不可取。下面介绍利器『三步翻转法』,以[4, 5, 1, 2, 3]为例。 由以上3个步骤可知其核心为『翻转』的in-place实现。使用两个指针,一个指头,一个指尾,使用for循环移位交换即可 JAVA: C++: 源码分析 首先找到分割点,随后分
阅读全文
摘要:题 Zero Sum Subarray | Data Structure and Algorithm 的变形题,由于要求的子串和不一定,故哈希表的方法不再适用,使用解法4 - 排序即可在 O(nlogn) 内解决。具体步骤如下: C++: 源码分析 为避免对单个子串和是否为最小情形的单独考虑,我们可
阅读全文
摘要:题解1 - 哈希表 题 Zero Sum Subarray | Data Structure and Algorithm 的升级版,这道题求子串和为 K 的索引。首先我们可以考虑使用时间复杂度相对较低的哈希表解决。前一道题的核心约束条件为 f(i1)−f(i2)=0,这道题则变为 f(i1)−f(i
阅读全文
摘要:最近下载了一个 Office 2016 专业版 使用,发现 word 无法使用 Ctrl + V 粘贴东西,由于经常需要复制粘贴东西,无法粘贴影响很大 查了很多资料,尝试过很多的方法,终于发现问题的所在,Office 2016 自带了 MathType,由于加载了这个,导致粘贴会出现一些问题 试过在
阅读全文
摘要:如果想查看 Mysql 数据库的总的数据量或者某个表的数据或者索引大小,可以使用系统库 information_schema 来查询,这个系统库中有一个 TABLES 表,这个表是用来记录数据库中表的大小、行数、索引大小等信息 表结构如下: sql: 这个表的字段很多,常用的字段有下面几个: TAB
阅读全文
摘要:题解1 - 两重 for 循环 题目中仅要求返回一个子串(连续)中和为0的索引,而不必返回所有可能满足题意的解。最简单的想法是遍历所有子串,判断其和是否为0,使用两重循环即可搞定,最坏情况下时间复杂度为 O(n^2), 这种方法显然是极其低效的,极有可能会出现 TLE. 下面就不浪费篇幅贴代码了。
阅读全文
摘要:问题:Linux在 Vi/Vim 在编辑文件时遇到一个问题,当我在 Insert 模式下进行修改文件内容的时候,用到了键盘(104键,右边带数字键那种)进行数字输入,当我输入数字 “5” 时,插入的数字不是 “5” ,而是变成了 “u” 解决方案: 1、打开 XShell ,在所有会话中,选择你的服
阅读全文
摘要:题解 题目大意是找第 n 个数(字符串表示),规则则是对于连续字符串,表示为重复次数+数本身。 后一个数等于前一个数的计数(字符串表示),有点类似斐波那契数列 JAVA: 源码分析 字符串是动态生成的,故使用 StringBuilder 更为合适。注意s 初始化为"1", 第一重 for循环中注意循
阅读全文
摘要:题解 关键点在于确定最后一个字符串之前的空格,此外还需要考虑末尾空格这一特殊情况,故首先除掉右边的空白字符比较好。 JAVA: 源码分析 两根指针。 复杂度分析 遍历一次,时间复杂度 O(n).
阅读全文
摘要:场景:我现在需要跑脚本批量处理一些数据,但是我又不想盯着控制台看这个脚本的输出结果,想把这些输出结果记录到一个日志文件里面 方案:可以使用 Linux 的 nohup 命令,把进程挂起,后台执行 用法: 运行结果(这个数字是进程号): 有时候可能会报一个提示: 这个影响不大,不用紧张,也可以加多一个
阅读全文
摘要:题解 字符串的通配实现。'?'表示匹配单一字符,'*'可匹配任意多字符串(包含零个)。要匹配的字符串设为s, 模式匹配用的字符串设为p,那么如果是普通字符,两个字符串索引向前推进一位即可,如果p中的字符是?也好办,同上处理,向前推进一位。所以现在的关键就在于如何处理'*', 因为*可匹配0, 1,
阅读全文
摘要:题解 根据题意,给定的输入数组长度足够长,将空格替换为%20 后也不会溢出。通常的思维为从前向后遍历,遇到空格即将%20 插入到新数组中,这种方法在生成新数组时很直观,但要求原地替换时就不方便了,这时可联想到插入排序的做法——从后往前遍历,空格处标记下就好了。由于不知道新数组的长度,故首先需要遍历一
阅读全文
摘要:最简单的方案,穷举所有可能的子串,判断子串是否为回文,使用一变量记录最大回文长度,若新的回文超过之前的最大回文长度则更新标记变量并记录当前回文的起止索引,最后返回最长回文子串。 C++: JAVA: 源码分析 使用left, right作为子串的起止索引,用于最后构造返回结果,避免中间构造字符串以减
阅读全文
摘要:字符串的回文判断问题,由于字符串可随机访问,故逐个比较首尾字符是否相等最为便利,即常见的『两根指针』技法。此题忽略大小写,并只考虑字母和数字字符。 C++: JAVA: 源码分析 两步走: 字符的判断尽量使用语言提供的 API 复杂度分析 两根指针遍历一次,时间复杂度 O(n), 空间复杂度 O(1
阅读全文