粘包/分包 发送得太快后会出现粘包。 为什么粘包?TCP是面向字节流的协议,UDP是面向报文的协议。 数据流会把小的报文粘在一起,也会把大的报文拆分。 这里采用自定义消息结构解决的粘包分包。在内容前面加上长度。 写函数 bool TcpWrite(const int sockfd,const char *buffer,const int ibufl…
Linux信号 先上 demo 吧。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <signal.h> void func(int sig) { printf…
226. 翻转二叉树 左子树给右子树,右子树给左子树 class Solution { public: TreeNode* invertTree(TreeNode* root) { if (root == nullptr || (root->left == nullptr && root->right == nullpt…
239. 滑动窗口最大值 加入时把小于val的全删除,删除时最多只删一个 class Solution { private: class MyQueue { public: void push(int value) { while (que.size() && que.back() < value) { que.pop_bac…
20. 有效的括号 其实一个只能删一个,不用写while class Solution { public: bool isValid(string s) { unordered_map<char, char> umap; umap[')'] = '('; umap[']'] =…
232. 用栈实现队列 两个栈,一个in,一个out。out为空时就把in全部加进来 // 两个栈 一个用来出 class MyQueue { public: stack<int> sta1; stack<int> sta2; MyQueue() { } void push(int x) { sta1.push(x); } …
OMG 巨难 28. 找出字符串中第一个匹配项的下标 kmp,,很折磨 class Solution { public: void getNext(int *next, const string &s) { int j = -1; next[0] = j; for (int i = 1; i < s.size(); i ++) { w…
541. 反转字符串 II 写了一个通用的翻转函数 然后用到了指针做下标的思想 其实写复杂了,reverse可以直接调库,然后可以用一个for循环做起点,终点加个长度就ok了 class Solution { public: // 将s的[L, R]范围内翻转 void reverseS(string& s, int L, int R) {…
383. 赎金信 class Solution { public: bool canConstruct(string ransomNote, string magazine) { unordered_map<char, int> umap; for (auto i : magazine) umap[i] ++; for (auto i …
写两个水题放松下心情了属于是 1. 两数之和 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> umap; for (int i = 0; i < …