先排序,然后固定一个值,使用双指针计算结果。 时间复杂度O(n^2),空间复杂度O(1) class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int> > res; int ...
分类:
其他好文 时间:
2020-05-24 20:45:40
阅读次数:
48
内存映射数据结构是一系列经过特殊编码的字节序列,创建它们所消耗的内存通常比作用类似的内部数据结构要少得多,如果使用得当,内存映射数据结构可以为用户节省大量的内存。 不过,因为内存映射数据结构的编码和操作方式要比内部数据结构要复杂得多,所以内存映射数据结构所占用的CPU时间会比作用类似的内部数据结构要 ...
分类:
其他好文 时间:
2020-05-14 19:34:58
阅读次数:
56
1.计算机语言 二进制代码,由0,1组成 直接作用于硬件 2.汇编语言 对计算机语言进行优化 有一些简单指令组成 3.高级语言 C语言(一代目) 1972年诞生 刚开始用于UNIX系统开发,一枝独秀 偏汇编语言,更贴近硬件,代码运行效率更高 有指针,内存管理,功能比较强大,也比较繁琐 不同平台,代码 ...
分类:
编程语言 时间:
2020-04-18 18:25:15
阅读次数:
98
尽管不像非嵌入式计算机那么常见,嵌入式系统还是有从堆(heap)中动态分配内存的过程的。那么嵌入式系统中,动态分配内存可能发生的问题是什么? 主要有三种类型:内存泄露、内存碎片和内存崩溃 内存崩溃是内存使用最严重的结果,主要原因有数组访问越界、写已经释放的内存、指针计算错误、访问堆栈地址越界等等。碎 ...
分类:
其他好文 时间:
2020-04-11 23:59:52
阅读次数:
119
[TOC] 常规检查 逆向分析 题目程序较为简单,功能是创建字符串和删除字符串,其中创建字符串用 create ,删除字符串用 free 。 create 函数 当输入的字符串大于 0xf 字符时会另外开辟内存来存储字符串,否则存入 ptr 指针的地址中。通过分析我们还可以得到 + ptr :在小于 ...
分类:
其他好文 时间:
2020-02-21 21:52:59
阅读次数:
84
1、简介 2、基本概念 3、指针 计算机内存的最小单位是位(bit),每个位可以容纳值0或1,单独的位用处不大,通常许多位合成一组作为一个单位,以存储较大范围的值 每个字节包含8位,可以存储无符号值0至255,或有符号值-128至127 为了存储更大的值,把两个或多个字节合在一起作为更大的内存单位, ...
分类:
其他好文 时间:
2020-01-26 10:31:21
阅读次数:
85
计算机中所有的数据都必须放在内存中,以二进制的形式存储在内存中,才能被CPU所使用。不同类型的数据占用的字节数不一样,为了正确地访问这些数据,必须为每个字节都编上号码。将内存中字节的编号称为地址(Address)或指针(Pointer)。地址从 0 开始依次增加,对于 32 位环境,程序能够使用的内 ...
分类:
其他好文 时间:
2020-01-23 12:35:01
阅读次数:
80
常见的算法时间复杂度由小到大依次为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…<Ο(2n)<Ο(n!) 一般情况下,对一个问题(或一类算法)只需选择一种基本操作来讨论算法的时间复杂度即可,有时也需要同时考虑几种基本操作,甚至可以对不同的操作赋予不同的权值,以 ...
分类:
编程语言 时间:
2020-01-15 11:39:10
阅读次数:
104
1.计算机会为变量在存储器中分配空间。 2.局部变量位于栈中。 3.全局变量位于全局变量段。 4.指针只是一个保存“存储器”地址的变量。 5.&运算符可以找到变量的地址。 6.*运算符可以读取存储器地址中的内容 7.*运算符还可以设置存储器地址中的内容 如: int x = 3; int *addr ...
分类:
编程语言 时间:
2019-04-21 14:24:56
阅读次数:
178
计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用4个字节,char 占用1个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。下图是 4G 内存中每个字节的编号(以十六进制 ...
分类:
其他好文 时间:
2018-08-02 22:47:40
阅读次数:
155