KMP 算法
KMP 算法 —— 用于字符串匹配。优点是在匹配的过程中不用回退主指针,子指针会根据子串中最长相等前后缀来进行回退,能够大大降低时间复杂度。
这里有几个定义需要说明:
前缀:不包含尾字符的所有子串
后缀:不包含首字符的所有子串
举例:T = aabaaf
子串
说明
最长相等前后缀的长度
$t_1=\mathrm{a}$
无前缀也无后缀
$\pi \left( 0 \right) =0$
$t_1=\mathrm{aa}$
前缀为 $\small {\mathrm {a}}$ 后缀也为 $\small {\mathrm {a}}$
$\pi \left( 1 ...
力扣刷题 - 字符串
力扣 344
反转字符串
双指针秒了。
void reverseString(vector<char>& s){ int left = 0; int right = s.size() - 1; while(left < right) { // swap(s[left++], s[right--]); char temp = s[left]; s[left++] = s[right]; s[right--] = temp; }}
力扣 541
反转字符串 Ⅱ
很简单的一 ...
hexo 全局配置文章对齐方式
编写文章的时候发现正文内容没有两端对齐,每段文字末尾没对齐看着不是很美观。这里总结一下配置教程。
首先 hexo + butterfly 框架下文章内容的类名叫做 article-container 。然后只需要在用户自定义的 custom.css 中写入如下的内容即可:
#article-container{ text-align: justify;}
其中 text-align 字段定义文字的对齐方式,常用取值如下:
left:左对齐(默认)
right:右对齐
center:居中对齐
justify:两端对齐
custom.css 文件路径一般在 your_bl ...
力扣刷题 - 链表
对于一个链表,C++ 的定义如下:
struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode *next) : val(x), next(next) {}};
链表结构可由下表征:
力扣 203
移除链表元素
这个题由于涉及到头节点的变动,因此可以先设置一个空的前置节点 dummy,然后将 dummy 指向 h ...
力扣刷题 - 数组
力扣 704
二分查找
这道题目可以用暴力解法,也就是遍历数组元素,但是这样做的时间复杂度是 $\small {O (N)}$。因此可以采取二分法对题目进行求解。设定开始查找的范围为 [left, right],比较区间中点 mid 的值和 target 的大小,如果小于 target 说明 target 在 [mid + 1, right] 之间,如果大于 target 说明 target 在 [left, mid - 1] 之间。每轮根据区间修改 left 或 right 的值,如果 left > right,说明数组中没有 target 目标值,返回 - 1。知道了二分法的 ...
力扣刷题 - 哈希表
哈希表就是在关键字和存储位置之间建立对应关系。也就是:
flowchart LR
A["关键字"] --> B["存储地址"]
A@{ shape: rounded}
B@{ shape: rounded}
classDef default stroke-width:3px,font-size:16px,fill:transparent
在 C++ 中可以使用无序容器来实现:
// 头文件#include<unordered_map>// 定义,这里表示key和value都是int型unordered_map<int, ...
hexo 配置 mermaid—butterfly 主题
一、插件安装
npm install hexo-filter-mermaid-diagrams
二、修改配置文件
2.1 博客配置:_config.yml
_config.yml在根目录。
在末尾添加以下内容:
# mermaid chartmermaid: # mermaid url https://github.com/knsv/mermaid enable: true # default true version: "7.1.2" # default v7.1.2 options: # find more api options from https://g ...
Java 技术栈学习路径
Java 技术栈学习路径
朋友分享,仅作参考
flowchart TD
A1["语言选择"] --> A2("Java:岗位多,易找工作") & A3("Golang/C++:大厂常用,难度大")
A2 --> B1["Java基础"]
B1 --> B2("数据结构与算法<br>(Leetcode刷题)") & B3("计算机基础知识<br>(操作系统、网络、数据库)") & C1("Spring Boot 框架")
C1 --> C2["MyBatis / Hibernate 等 ...
西电雨课堂 - 学术规范与论文写作答案
前言:答案自行整理,含期末考试
期末考试中 4 道题目答案有误。因试卷不能查看难以进行更正,不过还是能随便过 (・̀ ω・́) y
仅限学习交流
第一章
1.1 章节习题
根据本周所讲内容,对于论文标题的撰写,以下描述正确的是
A、标题应尽量精炼简洁
B、标题需注意保护知识产权
C、标题应反映核心技术
什么样的论文能被称为优秀的论文
A、论文能开辟一个新的方向
B、论文能获得学术界重视,获得足够的引用
C、论文有一定的研究价值
D、论文有一定的创新意义
根据本周所讲内容,对于论文摘要的写,以下描述正确的是
A、摘要应覆盖文章的亮点及效果
B、摘要是标题的扩充
D、摘要应覆盖文章的出发点
...
西电雨课堂 - 科学道德与学风答案
前言:期末考试从章节练习题中选取,不单独列出。题目为自行整理。
仅限学习交流
第一章
1956 年,谁撰写的《工程控制论》获国家科学一等奖
A、钱学森
中国在什么时间成功爆炸第一颗原子弹
A、1964 年 10 月 16 日
中国在什么时间成功爆炸了氢弹
A、1967 年 6 月 17 日
1999 年国庆 50 周年前夕,中共中央、国务院、中央军委授予多少名科技工作者以每由 515 克纯金制成的 “两弹一星功勋奖章”
C、23 名
“科学没有国界,科学家却是有祖国的” 是谁的名句
C、钱三强
在五、六十年代的中国,科学界素有 “三钱” 之称谓
A、钱学森
B、钱三强
C、钱伟长
王平主 ...





