MrD's Blog

我干了什么 究竟拿了时间换了什么

【剑指offer】从尾到头打印链表

题目 这道题很简单,将单链表头插法逆序,然后顺序将val存入vector即可。 一开始不知道单链表是否带有头结点, 经测试,单链表为不带头结点的单链表。 这道题解决长久以来多级指针, 以及指针的引用上的困惑。 长久以来,我对指针的理解都是 多一个 * 就是深一级的地址。 我都是将 “ *变量名称” 理解为一个整体, 事实上这样理解很容易把自己整懵。 如果将 “数据类型*” 理...

【剑指offer】替换空格

题目 算法分为两部分: 检测空格,将空格后的字符后移两位 将空格及其后两个的位置替换 一开始做考虑数组的大小问题 遇到了realloc和静态数组的问题。 新分配在堆内的内存,数组定义之后不能改变大小,realloc(p,sizeof(p)+sizeof(int))函数不会改变p的值,新的内存地址是函数的返回值。 realloc只能给动态数组重新分配大小。 后来发现...

【离散数学】谓词逻辑

谓词 个体:命题中所涉及的对象。 谓词: 刻画个体的性质或若干个体间关系的模式。 一般用大写字母P, Q, R, … 表示。 例子: 张明生于背景。 Q(x, y): x生于y; c:张明, d:北京, 则有Q(c, d) 个体变元:讨论对象未确定, 泛指的个体, 如x, y。 个体常元:讨论对象已确定,特定的个体,如c,d。 个体域:n元谓词P(x1, x2, … , x...

【操作系统】进程管理

进程 进程的组成 进程由程序控制块(PCB)、程序段、数据段组成。 程序控制块(PCB):包含操作系统对其进行管理所需的各种信息,如进程描述信息、进程控制和管理信息、资源分配清单和处理机相关信息。 程序段:程序代码存放的位置。 数据段: 程序运行时使用、产生的运算数据。如全局变量、局部变量、宏定义的常量就存放在数据段内。 进程的组织形式 进程的特征 动态...

【剑指offer】二维数组中的查找

题目 看到这个题目的第一想法,就是二分查找。 然而在本地调试通过后在牛客上不通过 百度了一下段错误的定义 所谓的段错误 就是指访问的内存超出了系统所给这个程序的内存空间 大概是超出了程序的内存空间大小。这道题要求内存空间为32768K 二分查找的方法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2...

【计算机网络】绪论

学习计算机网络后应该能回答的问题: 数据通信 数据通信系统的五个组件 报文,发送方, 接收方, 传输介质, 协议 网络 网络拓扑结构分类 网状、星型、 总线、 环装 网络分类 局域网:覆盖范围较小,相连设备通常属于一个组织,速率较高 广域网:覆盖范围较广,通常需要穿越公共设施, 比如电信运营公司,速率较局域网低 广域网往往要跨国 因特网属于广域网 ...

【Geek之路】C、C++语法及Trick

C/C++语法 Vector用法 vector 说明 vector是向量类型,可以容纳许多类型的数据,因此也被称为容器 (可以理解为动态数组,是封装好了的类) 进行vector操作前应添加头文件#include <vector> vector初始化 方式1: 1 2 3 4 //定义具有10个整型元素的向量 //(尖括号为元素类型名,它可以是任何合法的...

【操作系统】中断

中断的产生 中断是多程序并发执行的前提条件 (1)当中断发生时, CPU立即进入核心态 (2)当中断发生后, 当前运行的程序暂停运行, 并由操作系统内核对中断进程处理 (3)对于不同的中断信号, 会进行不同的处理 中断的本质 发生中断就意味着需要操作系统介入,开展管理工作 用户态到核心态的转换就是通过中断机制实现的, 并且中断是唯一的途径 核心态向用户态切换时通过执行一个特权...

【操作系统】绪论

操作系统的概念 操作系统是控制和管理整个计算机系统的硬件和软件资源, 合理地组织调度计算机的工作和资源的分配, 以提供给用户和其他软件方便的接口和环境, 它是计算机系统中最基本的系统软件软件 总结: 管理计算机的硬件和软件 提供接口和环境 是最基本的软件 操作系统的功能: 进程管理 存储器管理 设备管理 文件管理 作业管理 操作系统...

【离散数学】命题逻辑

命题逻辑 命题 具有确定真值的陈述句。如果命题为真, 其真值为真(T), 否则真值为假(F)。 例子: 命题:李自成起义那天,杭州下雨。 已无法查明它的真值, 但它是或真或假的, 将它归属于命题。 非命题: x = 3 真好啊! x=3是断言,但不是命题, 因为它的真值取决于x的值。 “真好啊!”不是断言, 所以不是命题。 原子命题 ...