中国加油!
时代的一粒灰,落在个人头上,就是一座山。
casapp
1.9
超线程,有时称为同时多线程(simultaneous multi-threading),是一项允许一个 CPU 执行多个控制流的技术。它涉及 CPU 某些硬件有多个备份,比如程序计数器和寄存器文件,而其他的硬件部分只有一份,比如执行浮点算术运算的单元。常规的处理器需要大约 20000 个时 ...
leetcode373、632 多路归并+堆
leetcode 373
这是一道top k问题,首先从最原始的思路想,可以用双指针暴力枚举所有情况然后取前k个,但这就没有利用好两个数组都是已排序的条件,假设我们已经得到了前n个最小的,那么下一个要考虑的就是这n个数中的每一个的(ai,bi+1)(a_{i},b{i+1})(ai,bi+1)和 ...
双向BFS
190.字串变换
概述:如何用最少的次数根据现有规则,将字符串A变为字符串B
题目连接:https://www.acwing.com/problem/content/description/192/
一个朴素的思想就是,把A字符串的所有能转变规则的地方都转变一次,就相当于从A字符串拓展出几条不同的 ...
实现一个简单的智能指针
智能指针主要是做了两件事情:
申请内存,我们用模板指针 T* ptr
另一个进行计数并销毁清理对象
注意多个智能指针里的ptr可能会指向同一快内存,所以计数的变量也是要同步的,在这里我们用一个指针int* count来计数,每次新建一个共享指针就对count进行浅拷贝,这样多个指针指针就能同步进行 ...
static变量的存储与初始化时间
数据段探究
数据段主要分为.bss(Block Started by Symbol)和.data(data segment)段,前者指用来存放程序中未初始化的全局变量的一块内存区域,后者是指用来存放程序中已初始化的全局变量的一块内存区域。
text和data段都在可执行文件中(在嵌入式系统里一般是 ...
时间统计特性开发
设计思路
总体思路:首先设计一个类 SingleConvertTime, 利用这个类的构造和析构进行单次 convert 的时间的计算,将这个类的实例化加入到 convert 模板中,之后设计一个单例 SingleConvertTime 进行管理,统计各个消息实时转化的最值。
计算采用纳秒级别的精 ...
shared_ptr用法与线程安全性
概念
共享指针,即多个指针指向同一个内存;具体实现方式是采用的引用计数,即这块地址上每多一个指针指向他,计数加一;
引用计数可以跟踪对象所有权,并能够自动销毁对象。可以说引用计数是个简单的垃圾回收体系。
智能指针是模板类而不是指针。创建一个智能指针时,必须指针可以指向的类型,, ……等。
智能指针 ...
优雅的写一个文件读取
用到的函数
fseek 函数原型:
c++1int fseek(FILE * stream, long offset, int whence);
SEEK_SET:文件开头
SEEK_CUR:文件当前位置
SEEK_END:文件末尾
该函数用于实现以任意顺序访问文件的不同位置
ftell:函数原型 ...
418
题目地址:https://leetcode-cn.com/problems/contains-duplicate-iii/
由于要判断的两个数的下标的距离小于k,很容易想到使用滑动窗口,对每个窗口内的数进行判断,然后移动窗口,复杂度就是O(kn)O(kn)O(kn),这会超出时间限制
因此降低复杂度 ...