我太菜了

喜欢写Hello World的未来程序员.

76. Minimum Window Substring

你快乐吗

壮年听雨客舟中 江阔云低 断雁叫西风 暴力代码: class Solution { public: string minWindow(string s, string t) { auto *hash = new int[128], *thash = new int[128]; memset(hash, 0, 128 * size...

84. Largest Rectangle in Histogram

你快乐吗

少年听雨歌楼上 红烛昏罗帐 直接上代码了就。。。 首先是暴力的版本,基本思路和下雨填那个水坑一样的。。会超时!!! class Solution { private: int getEdge(int start, int step, vector<int>& hs) { int temp = hs[start]; ...

44. Wildcard Matching | 72. Edit Distance

你快乐吗

天若有情天亦老 人间正道是沧桑 44. Wildcard Matching 给出dfs+记忆搜索的。。。 class Solution { public: int match(const char *a, const char *b, const char *ab, const char *bb, vector<vector<int>> &...

C++中虚函数表指针的位置及大小

虚函数表指针

千里之行 始于足下 先不写,直接看下代码和图,后面补充。。。 #include <cstdio> class A{ public: int a[2]; A(int x, int y) : a{x, y} {} virtual void f() {}; }; int main() { A aa(22, 33); au...

mmap基本用法和共享内存

用mmap写文件及共享内存

莫道男儿心如铁 君不见满川红叶 尽是离人眼中血 前面写了一篇文章关于luajit2.05中的内存限制,有讲到mmap分配内存中的一些问题,今天就自己动手过一下mmap文件映射内存以及mmap如何共享内存。 文件映射内存 mmap简单例子 往/dev/zero里写是不用考虑文件的大小的,所以很方便,如果是父子进程之间的共享内存的话,使用/dev/zero映射是非常好...

TCP四次挥手及状态解析

天气真好

试问岭南应不好 却道:此心安处是吾乡 理解TCP本身是基于连接的全双工协议,就能够理解TCP的三次握手和四次挥手了,三次握手的目的是确认双方都能收发数据了,随后就能进行通信了;而四次挥手的目的就是双方数据都发送完了,都确认要断开了。 TCP四次挥手 建立连接需要三次握手,断开连接需要四次握手,可以形象的比喻为下面的对话: 套接字A:“任务处理完毕,我希望断开连接。...

TCP数据报及三次握手

天气真好

君埋泉下泥销骨 我寄人间雪满头 又要捡起计算机网络了,其实原来我在github上就有个仓库,整理了这些基础知识。但是最近可能会有面试,准备象征性地复习一下。不知道为什么会有点开心,可能是修福报修久了,偶尔学习一下就会很开心。 进入正题! TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数...

关于luajit2.05中大内存patch实现

luajit内存扩展

绿竹入幽径 青萝拂行衣 前面已经讲了大概的背景,以及如何自定义分配内存的地址,这里会讲luajit的大内存patch是如何利用这点而做到扩展可用内存到4GB的。 首先大概的阅读可以发现,luajit在给部分gc对象分配内存的时候,调用的是lj_alloc_create,这里面不用malloc,而是用mmap,mmap有个标志位MAP_32BIT,这样就会把内存分配在前32位...

关于luajit2.05中的内存限制

luajit内存扩展

晚泊孤舟古祠下 满川风雨看潮生 简单介绍下相关背景,luajit2.05及以下版本在设计的时候就使用的相关手段,使得luajit中各种变量的内存地址被限制在了1-2GB的范围里,所以实际上其使用的空间也不会超过2GB。 这个在stackoverflow上也有相关的问题,然后下面的解答是这样的: 大概意思就是说,在x64的平台上,luajit中通过在mmap函数中使...

42. Trapping Rain Water

你快乐吗

故园便是无兵马 犹有归时一段愁 这道题,我记得去年9月份的时候就见过,但是当时想了一会没想出来就算了,现在还是碰到了。 要能够解这道题,需要转化一下思路,从现实实际着手,而不是死磕套路,这样一下子反而想不起来套路。 这道题如果放现实里就是计算水的体积,只是这里将水坑作了简化,水坑由一块块宽度为1的砖块组成。实际上如果我们在现实生活中计算这个体积,或者是数学题里,会很快想到...