- 博客(7)
- 收藏
- 关注
原创 如何判断链表有环并判断环的入口节点
如何判断链表有环设置快慢指针,两个指针都从头节点开始,快指针一次走两步,慢指针一次走一步,如果快慢指针相遇则链表有环。伪代码:node *fast=head;node *slow=head;while(fast!=NULL&&fast->next!=NULL){fast=fast->next->next;slow=slow->next;if(...
2019-08-01 22:43:35
271
原创 大数相乘和相加(当长整形都表示不了这个整数时,该如何进行计算呢?)
首先先写一个进位的函数vector<int> jinwei(vector<int> result, int num, int digit){ num = result[digit] + num; //本位的进位数加上两个数在本位的和 if (num >= 10) //进位 { int jin = num / 10; int save = nu...
2019-06-23 22:07:27
208
原创 7大常用排序算法总结
常用算法总结(包括代码,时间复杂度)(本文中为从小到大排序)1、冒泡排序最常用的排序算法了,从第1个数开始,和下一个数进行比较,假如下一个数小,则交换这两个数的位置,第一趟排序得到数组的最大值,第二趟排序得到次最大值,依次列推,若一趟比较中没有交换,则数组已经正序排列。排序结束。最好的情况:正序排列,时间复杂度O(n);最差的情况:逆序排列,时间复杂度O(nn);平均时间复杂度:O(n...
2019-06-23 21:51:12
177
原创 回文字符串判断以及最长回文字符串长度判断
回文字符串,就是正着反着读都一样的字符串。1、回文字符串判断假如这个字符串为奇数长度的回文字符串,则除了最中间的字符外,其左右的字符串两两相同。假如这个字符串为偶数长度的回文字符串,则其左右完全对称。代码如下:#include<iostream>#include<string>using namespace std;bool palindrome(strin...
2019-06-20 11:34:15
1779
原创 背包问题动态规划
背包问题有n个物品,每件物品的重量为w,价值为v,问:当背包重量容量为W时,背包的最大价值为多少?解决:动态规划可通过递推的方式计算最大价值,想知道n个物品的最大价值,可如下考虑:1、假如第n个物品的重量大于W,则背包的最大价值为前n-1个物品的最大价值;2、假如第n个物品的重量小于W,则背包的最大价值为(前n-1个物品的最大价值)和(前n个物品重量小于W-w[n]的最大价值加上第n个...
2019-06-19 11:57:55
257
原创 二叉查找树VS二叉平衡树VS红黑树
二叉查找树的缺点一般的二叉查找树,在查找某个节点值时,可采用类似二分法的思想进行查找,时间复杂度为O(log(n));但是当二叉查找树在极端情况下退化为类似于链表时,时间复杂度为O(n);这时二叉平衡树应运而生;二叉平衡树的缺点二叉平衡树是一颗要求左右子树的高度差不能超过1的二叉查找树,这个要求使得每次在进行插入、删除的时候,这棵树都可能遭到破坏,进而需要进行左旋右旋等操作恢复平衡。当我们...
2019-06-18 17:59:55
233
原创 TCP三次握手、四次挥手到底是如何进行的
TCP三次握手第一次握手服务器端对新的客户端都会置于Listen状态。首先,客户端向服务器端发出连接请求报文,发送SYN=1,seq=x,此时客户端的状态为SYN-SENT;第二次握手服务器端收到连接请求报文后,同样发送报文给客服端确认,内容为SYN=1,ACK=1,ack=x+1,seq=y,此时服务器端状态由Listen->SYN-RCVD;第三次握手客户端收到服务器端的...
2019-06-18 17:33:53
138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅