一.基本概念OSPF:开放式最短路径优先协议无类别链路状态IGP动态路由协议1.距离矢量协议:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中;对于网络中的所有路由器而言,路由器并不清楚网络的拓扑结构,只是简单的知道要去往某个目的地方向在哪儿,距离多远。这既是距离矢量协议。2.链路状态协议:与距离矢量协议不同,链路状态协议通告的是链路状态而不是路由表。运行链路状态协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互LSA(链路状态通告)。每台路由器都会产生自己的LSA,路由器将接收到的LSA放进自
目录1.题目2.题解C#解法一:分段匹配法C#解法二:回溯法C#解法三:动态规划1.题目给你一个字符串s和一个字符规律p,请你来实现一个支持‘.’和‘*’的正则表达式匹配。1.‘.’匹配任意单个字符2.‘.’匹配任意单个字符所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。示例1:输入:s="aa",p="a"输出:false解释:"a"无法匹配"aa"整个字符串。示例2:输入:s="aa",p="a*"输出:true解释:因为'*'代表可以匹配零个或多个前面的那一个元素,在这里前面的元素就是'a'。因此,字符串"aa"可被视为'a'重复了一次。示例3:输入:s="ab",p=".*"输出:
目录一.反转链表思路一反转指针反向:思路二头插法:二.链表的中间节点:三.合并两个有序数组: 思路一:从头开始,取两个链表中小的那个尾插到新链表。定义指针head,tail指向空,代表新链表的头结点。思路二:创建一个空的头指针(哨兵位),优化代码 : 四.环形链表①: 五.环形链表②:分享几个链表经典问题给大家,有不足的地方欢迎指出~感谢支持 づ♡ど 一.反转链表题目: 思路一反转指针反向:设置三个指针变量n1,n2,n3;分别指向NULL,第一个节点,第二个节点。将第n2的next指向n1,n1给n2,n2给n3,然后n3指向下一个节点,当n3=NULL是就不用在移动了,总的循环终止条件是
LeetCode454四数相加Ⅱ题目链接:四数相加Ⅱ文章链接:四数相加Ⅱ视频链接:四数相加Ⅱ思路因为C++还在学习中,还没到set和map这里,所以就先看视频了。不过这题肯定有暴力的解法,就是用四个for循环遍历所有的情况,用count记录,然后count++,最终返回count即可,但时间复杂度是n的四次方,不太建议这么做。--------------------------------------------------------以下是看完视频总结的思路--------------------------------------------------------大体的思路是这样的,四个
目录一、今日心得感悟 1、数组从小到大排序①冒泡法--时间复杂度:O(nlogn)②使用排序函数qsort--时间复杂度:O(nlogn) ③两端->中间(双指针法) --时间复杂度:O(n)④归并排序(双指针法)--时间复杂度:O(n) 2、二维数组的访问及动态分配 3、时间复杂度 4、滑动窗口二、题目977.有序数组的平方 题目链接 想法 代码实现(未看视频/题解) 遇到的问题209.长度最小的子数组 题目链接 想法 代码实现(未看视频/题解)
吾心信其可行,则移山填海之难,终有成功之日。 --孙中山目录🍉一.删除链表的倒数N个结点🌻1.双指针🍁2.求链表的长度🌸二.删除链表的中间的结点🍉一.删除链表的倒数N个结点给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=[1],n=1输出:[]示例3:输入:head=[1,2],n=1输出:[1]做题链接🌻1.双指针这题我们同样使用双指针的方法,我们先定义一个fast指针和slow指针,它们都指向head。第一步:先判断fast为不为空,不为空,n就
29.两数相除给你两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和取余运算。整数除法应该向零截断,也就是截去(truncate)其小数部分。例如,8.345将被截断为8,-2.7335将被截断至-2。返回被除数dividend除以除数divisor得到的商。注意:假设我们的环境只能存储32位有符号整数,其数值范围是[−231,231−1][−2^{31},2^{31}−1][−231,231−1]。本题中,如果商严格大于231−12^{31}−1231−1,则返回231−12^{31}−1231−1;如果商严格小于−231-2^{31}−231,则返回−
期末考试临近,每天复习一点知识,还是可以复习完的,加油前言我后来才知道这是力扣上的一道题,我当时写他的时候名字叫找到单身狗,即使那个只出现了一次的数字题目136.只出现一次的数字给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。题目所谓单身狗问题翻译成数学问题就是在已知的一串数字,有一个数字只出现一次,其余的出现两次,现在你要找到是哪个数是单身狗解析一.一条单身狗我们要用到按位操作符首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制
目录💡题目描述💡双指针解法💡单调栈解法💡题目描述给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。提示:n==height.length10💡双指针解法思路:假设每个宽度为1的柱子那里有一个高度未知的宽度为1的水桶,这个水桶能接的水就是当前柱子所处位置能留下的雨水,而水桶的左边木板的高度取决于当前柱子左边所有的柱子中最高的那个柱子的高度,水桶右边木板的高度取决于当前柱子右边所有的柱子中最高的柱子的高度,而水桶左右木板中较小的那个木板的高度减去当前柱子的高度就是当前水桶能接到的水,也就是当前位置留下的雨水。classSolution{public:
动态规划题目汇总斐波那契数列:1,1,2,3,5,8,13……递归一把解决三类问题:1.数据定义是按照递归的(斐波那契数列)。2.问题解法是按递归算法实现的。3.数据形式是按照递归形式定义的。递归的一般形式:voidrec(形参列表){ if(test)return;//边界条件//!!!注意!!!递归一定要有边界条件!!!否则就会死循环!!!rec(实参列表)//递归调用语句序列2//递归返回段(回溯)}有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。例:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。一月的时候有一只兔子,假如兔子都