片尾有彩蛋!
用过linux都没问题吧
常用的:apt-get install 、 rm 、 cd、clear 、exit等
三次握手:A是客户端,B是服务器端
1、A向B发送SYN报文,请求连接
2、B收到SYN,向A发送ACK和SYN,同意连接请求
3、A收到SYN和ACK,向B发送ACK,连接成功
至此、三次握手完成
四次挥手:
1、A向B发送释放连接请求FIN报文
2、B收到释放连接请求报文,回复ACK,这个时候还没有关闭哦,只是半关闭的状态
3、B向A发送连接释放报文,被动关闭
4、A向B回复ACK,B收到ACK后,进入关闭状态,A在经过2MSL时间后也进入关闭状态!
至此,四次挥手完成
这里可以参考这篇博客: 传送门
视频讲解:传送门
这道题,PTA的原题啊!可以参考我的这篇博客:传送门
用Java的写的话,可以用split来分隔一下,存到数组里面,然后从后面输出就行拉
忘的一干二净的SQL
接口:接口是抽象方法的集合,接口只是一种形式,而接口自身不能做任何事情。接口是完全抽象的
抽象类:有默认的实现方法,可以用extends来继承
HashMap ==>哈希 、 TreeMap ==> 红黑树(当时还写成了哈希) 、 Set ==> 黑红树 , 还有Vector 、List 、ArrayList等等
这题跳过吧,咋也不会
用Java写的话,实现四个之后最好用接口封装起来,这才是最完整的,但是你不封装也不打紧。
struct node{ int num[Max];// Max 为栈的容量 int _top; }; void pop(node S){ if(S._top == 0)///栈空 ERROR; else S._top--; } void push(node S , int a){ if(S._top == Max)/// 栈满 ERROR; else S.num[++S._top] = a ; } int top(node S){ if(S._top == 0) ERROR; else return S.num[S._top]; } int size(node S){ return S._top; } main() { node S; S._top = 0; push(S,2); top(S); size(S); pop(S); }
这个是要求复杂度为O(n)的,就是把数组遍历一遍!
int solve(vector<int> &arr){ set<int> S; int Min = 1; for(int i = 0 ; i < arr.size() ; i++){ if(arr[i] > 0) S.insert(arr[i]); } for(auto it = S.begin() ; it!=S.end() ; it++){ if(*it != Min) return Min; else Min++; } return Min; }
我这种写法不太好:
看看这篇大佬的博客:传送门
面Java的岗,写着C++的代码,没有人像我一样吧!
更新:发现出题人博客,传送门