kongkong
首页
归档
分类
标签
关于
剑指Offer——(29)最小的k个数
题目描述: 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 实现如下: //测试用例中给出的返回值是有序的。。啧啧。。 //找到序列中最小的k个数,利用set,对数字进行insert或erase //红黑树中查找、插入、删除操作都为 O(logk) //最终将set中存储的值返回值vector中 //方法不改变原vect
2020-06-29
Data Structures and Algorithms
剑指Offer
链接、装载与库——进程的堆
* 本次只是简要的总结堆的基本情况,具体的函数分析和堆算法分析今后会继续再学习。。。→_→ * 程序在任意时刻都可能会发出请求,申请或释放一段内存资源,堆由此而生。 堆(Heap) 堆是一块巨大的内存空间,占据虚拟空间的绝大部分。在这片空间里,程序可以请求一块连续内存并自由使用,这块内存在程序主动释放之前一直保持有效 程序向操作系统申请一块适当大小的堆空间,程序自己管理这块空间。管理
2020-06-29
Linux
链接、装载与库
链接、装载与库——进程的栈
内存是承载程序的介质,是程序进行运算和表达的场所。 未有特殊说明,则默认在32bit操作系统中。 1. 程序的内存布局操作系统会将内存空间中的一部分分给内核使用,应用程序无法访问这段内存,这段内存被称为内核空间。Windows默认情况将高地址的2GB空间分配给内核,Linux默认情况将高地址的1GB空间分配给内核。剩下的内存空间称为用户空间,用户空间中有许多默认区域。 栈:栈用于维护函数调用
2020-06-29
Linux
链接、装载与库
链接、装载与库——静态链接
* 赶紧结束这本书的总结。。太拖了。。→_→ * 第四章 静态链接1.链接器的空间与地址分配 链接器为目标文件分配地址和空间可执行文件中的代码段和数据段由输入的目标文件中合并而来。 按序叠加:直接将各个目标文件依次合并缺点:若有多个目标文件,则可能造成输出文件中有很多零散的段。每个段都有空间对齐要求,可能造成内存空间的大量内部碎片。 相似段合并:将相同性质的段合并到一起 “.bss”段
2020-06-29
Linux
链接、装载与库
剑指Offer——(28)数组中出现次数超过一半的数字
题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 实现如下: //方法一 //原理:数组中出现次数超过一半的数字,在其有序序列中就是中位数 //利用partition的作用:将某个数字,放到它应该在的位置,而将其他数分类摆
2020-06-29
Data Structures and Algorithms
剑指Offer
链接、装载与库——符号、引用、COMMON块
* 好久都没更这个了。。。请叫我拖更大魔王。。。→_→ * * 这一篇看下来,对符号的理解更深了。。。 * 在链接过程中,目标文件之间相互拼合实际上是目标文件之间对函数和变量的地址的引用。 在链接中,将函数和变量称为符号(Symbol),函数名和变量名为符号名(Symbol Name)。 符号表(Symbol Table)每一个目标文件都有一个符号表(Symbol Table),表中记录目
2020-06-29
Linux
链接、装载与库
剑指Offer——(27)字符串的排列
题目描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
2020-06-29
Data Structures and Algorithms
剑指Offer
剑指Offer——(26)二叉搜索树与双向链表
题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 实现如下: //二叉搜索树的结构特点:根的左子树的节点值都小于根节点值,右子树的节点值都大于根节点值 //构建一个有序的双向链表可以利用left作为前驱、right作为后继 // 5 // 4 7 // 2 3 6 8 //2⇿3
2020-06-29
Data Structures and Algorithms
剑指Offer
剑指Offer——(25)复杂链表的复制
题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 实现如下: //老样子,在线测试用例依旧是无头链表。。。→_→ //本题可以利用辅助内存以空间换取时间 //第一次遍历:在原链表的每一个节点之后添加一个与它值相同的新
2020-06-29
Data Structures and Algorithms
剑指Offer
剑指Offer——(24)二叉树中和为某一值的路径
题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 实现如下: //路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径 //所以必须是root到叶节点的和 //模拟一个栈,但在线用例要求将路径以vector的形式存储,所以只能使用vetor的push_back和pop模拟 //
2020-06-29
Data Structures and Algorithms
剑指Offer
1
…
6
7
8
9
10
…
12
搜索
×
关键词