LeetCode hot100@技巧
136. 只出现一次的数字❌ 如果能用sort函数或者set容器就很简单,可惜不允许 异或解决 class Solution { public: int singleNumber(vector<int>& nums) { int res = 0; for(int num : nums) { res ^= num; } retur…
GitHub
实用命令 查看参与过(提交、评论)的所有issue:is:issue involves:your-username
重构 muduo 网络库
高并发非阻塞网络库采用多Reactor多线程模型,实现高并发非阻塞的网络库。 智能指针防止悬空指针TcpConnection继承自enable_shared_from_this,其目的是防止在不该被释放对象的地方释放对象,导致悬空指针的产生。这样可以避免用户可能在处理OnMessage事件时删除对象,确保TcpConnection以正确方式释放。 …
MySQL笔记
命令 DDL-定义数据库、表结构 数据库操作 查询所有数据库:SHOW DATABASES; 查询当前数据库:SELECT DATABASE(); 创建数据库:CREATE DATABASE 数据库名; 使用数据库:USE 数据库名; 删除数据库:DROP DATABASES 数据库名; 表操作 查询 查询当前数据库内所有表:SHOW TABLES…
操作系统深层剖析
进程/线程/协程 进程: 进程是操作系统进行资源分配的基本单位,每个进程都有自己独立内存空间。 由于每个进程都有独⽴的内存空间,创建和销毁进程的开销较⼤。 进程间切换需要保存和恢复整个进程的状态(栈、寄存器虚拟内存、文件句柄、打开的文件资源信息等),因此上下⽂切换的开销较高。 由于进程间相互隔离,进程之间的通信需要使⽤⼀些特殊机制,如管道、消息队列…
Visual Studio调试
快捷键 F9:为当前行设置/取消断点 开始调试: F5:一段段执行,每到断点就停下 F10:一行行执行 F10:逐过程执行(逐行) F11:逐语句执行(可进入函数内部) shift + F5:放弃调试 局部变量窗口显示了变量的值,可以进行修改 ps:可以直接使用vs图形化界面代替快捷键进行调试
计算机网络深层剖析
一次完整的 HTTPS 通信流程 HTTPS = HTTP + TLS/SSL,通信过程包括: 建立 TCP 连接(三次握手) TLS/SSL 握手 客户端和服务器协商 TLS 版本与加密算法(客户端发送第一个随机数) 服务器发送数字证书(包含公钥)(服务器发送第二个随机数) 客户端核实数字证书的真实性,若为真,则取出公钥,用公钥加密后传输数据(包…
笔试题记:24年小米春招
190. 偏爱的字符✅ 模拟:用map存偏爱字符,遇到非偏爱字符时同时向两边搜即可 #include<bits/stdc++.h> using namespace std; void modify(int pos, string &res, const string &str, unordered_map<char…
笔试题记:24美团春招技术岗第一批笔试
1.小美的平衡矩阵 一开始暴力搜索,超时了 因此必须优化,时间主要浪费在了“计数一个范围内的0和1的个数” 所以用一个二维前缀和,psum[row][col] 表示 grid[row][0:col] 中1的个数,也就是预计算 这样在执行“计数一个范围内的0和1的个数”,只需要遍历每一行的前缀和,从二维降到了一维 #include <bits/…
LeetCode hot100@动态规划&多维动态规划
More content:力扣题记之动态规划 70. 爬楼梯✅ dp数组下标代表当前在第几阶,数组value表示到这一阶的方法数(即爬到第i层楼梯,有dp[i]种方法) 遍历顺序从前往后 但是一开始没想明白为什么状态转移公式是dp[i] = dp[i-1] + dp[i-2] 只是找规律推出来的 class Solution {public: in…