摘要:
Linux入门 1.配置静态ip 打开虚拟机的net设置,找到ipv4,将ipv4的method改成Manual(手动)现在打开虚拟机的编辑,去虚拟网络编辑器里面找到vmnet8的nat模式,选择net设置 net设置里的网关和子网掩码都要与linux的ip对应,同时对于新的ip地址前面的三位是子网 阅读全文
2022年9月29日 #
2022年5月24日 #
摘要:
5.24 dfs深度优先搜索: 思想比较简单,就是一条路走到底,走到最深点处再回退一步,再看有没有路可以走,没有的话再回退一步,重复此步骤; 也是人们常讲的暴搜。 主要的用法: 通常需要一个状态数组来记录每次走路时侯的状态,如果走过就将他变成true,再走完之后,需要回头的情况就需要将其变成原来状态 阅读全文
2022年5月22日 #
摘要:
5.22 字符串hash: 字符哈希串的意思 其实就是将字符串的前缀转换为数来存值由于每位的权值是不一样的 所以每个前缀值都对应着唯一的一种字符串; 主要用途:字符串/数据的比较,是kmp的一种替代;(kmp可以额外计算结点,其余比较相同都可以用字符串hash;很强! 核心思想:通过映射公式将对应的 阅读全文
2022年5月21日 #
摘要:
5.21 哈希表 Hash表又称为散列表,一般由Hash函数(散列函数)与链表结构共同实现,与离散化思想类似。 一般要求:防止冲突,便于查询 模拟hash表: 拉链法:两个核心操作insert(),find(); int h[N], e[N], ne[N], idx; //邻接表进行存储; void 阅读全文
2022年5月20日 #
摘要:
5.20 前言吐槽: 今天是5.20啦,但是作为单身修狗的我只能和代码过啦。。。继续加油算法打卡!!! 堆排序: 堆就是一棵完全二叉树 二叉堆是一种支持插入,删除,查询最值的数据结构。他其实是一棵满足"堆性质"的完全二叉树,树上的每个节点带有一个权值。若树中的任意一个节点的权值都小于等于其父节点的权 阅读全文
2022年5月19日 #
摘要:
5.19 Trie树: 用处:快速的查找和高效存储字符串集合的数据结构。 类似如此的查找,存储 其简单的两个操作:插入和删除 插入: void insert(char str[]) { int p; //定义数据前一位的位置 for (int i = 0; i < str[i]; i++) { in 阅读全文
2022年5月18日 #
摘要:
5.18 kmp算法 核心思想:在每次失配时,不是把p串往后移一位,而是把p串往后移动至下一次可以和前面部分匹配的位置,这样就可以跳过大多数的失配步骤。而每次p串移动的步数就是通过查找next[ ]数组确定的。 成员变量:ne[]记录的匹配数组;双指针i,j; KMP主要分两步:求next数组、匹配 阅读全文
2022年5月17日 #
摘要:
5.17 记一次错误: Segmentation Fault-> 如果开辟数组的大小比题意中的小可能出现此错误 单调队列: 队列满足先进先出的规则; 单调队列则又同时满足单调的规则; 可用来解决某一个区间的最小值,也是滑动窗口的典型案例 题目链接:154. 滑动窗口 - AcWing题库 #incl 阅读全文
2022年5月16日 #
摘要:
5.16 双链表: 即有左节点右节点的链表 算法题中主要的声明方式: int l[N],//向左边的结点 e[N],//存储的值 r[N],//右边的结点 idx;//变量指针 void init() { l[1] = 0; r[0] = 1; idx = 2;//初始有两个被占有,也导致后面找到k 阅读全文
2022年5月15日 #
摘要:
5.15 静态单链表 简单的方法: 成员变量: int e[N],//存放节点的值 ne[N],存放结点的next head,头结点指针 idx;变化的指针 初始化: void init() { head = -1;//头结点最初指向-1 idx = 0;//初始的位移指针是0; } //初始化链表 阅读全文