LeetCode 1838题
原题链接: https://leetcode.com/problems/frequency-of-the-most-frequent-element/
关键点:
1、最后的最频繁出现的元素一定在数组中,如果不在数组中,也可以通过整体少increase几次的方式,回到数组元素中。
2、最后的结果元素在最后加工前元素中,是最大的。
3、以上两点可以得到,将数组排序后,元素一定在数组的一个窗口内,不可能窗口内有元素被跳过。
综上所述,代码如下
原题链接: https://leetcode.com/problems/frequency-of-the-most-frequent-element/
关键点:
1、最后的最频繁出现的元素一定在数组中,如果不在数组中,也可以通过整体少increase几次的方式,回到数组元素中。
2、最后的结果元素在最后加工前元素中,是最大的。
3、以上两点可以得到,将数组排序后,元素一定在数组的一个窗口内,不可能窗口内有元素被跳过。
综上所述,代码如下
题目如下
https://leetcode.com/problems/magnetic-force-between-two-balls/
这里是按照二分查找数据的原理处理的,原理如下:
一个数组,下标为最小的距离,数组元素为最多可以容纳的球的数量。
这个数组单调递增。不过会有重复元素的出现,比如 n~m的距离,容纳的球的数量都是D个。这种情况下,m即为结果。
解题思路如下:
之所以是用
int mid = r - (r - l) / 2;
来查找中间位置,是因为需要通过这个找到最右边的m。
父子进程对监听socket的处理可以分为以下两种
http://c.biancheng.net/cpp/html/3040.html
epoll的ET触发并非缓存区可读可写,而是有新的网络IO事件。如果没有完全读取完毕而返回导致缓存区一直有数据可读。则只能等到下一次有网络IO时间的时候才能读取到。
// 非阻塞
anetNonBlock(NULL,fd);
// 禁用 Nagle 算法
anetEnableTcpNoDelay(NULL,fd);
// 设置 keep alive
if (server.tcpkeepalive)
anetKeepAlive(NULL,fd,server.tcpkeepalive);
// 绑定读事件到事件 loop (开始接收命令请求)
if (aeCreateFileEvent(server.el,fd,AE_READABLE,
readQueryFromClient, c) == AE_ERR)
{
close(fd);
zfree(c);
return NULL;
}
C++默认生成4个成员函数.
默认构造函数(default constructor), 析构函数(destructor), 复制构造函数(copy constructor), 赋值运算符函数(assignment);
C++11新增两个:
move构造函数(右值引用构造函数)
move赋值函数
如下图所示:
当没有使用转移字符的时候,\n的长度为1,使用strchr是可以找到\n的
set:
当只有少量数字的时候,set是基于intset实现的。当数据量大了,或者有字符存在的时候,基于dict实现,其中value为null