自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 收藏
  • 关注

原创 tmux基本指令

tmux是一个终端窗口管理器指令功能tmux ls列出所有tmux会话tmux detachCtrl+b d. 退出当前会话,会话内的活动还在继续tmux attach -t xxx重新接入会话tmux kill-session -t xxx完全关闭会话tmux switch -t xxx切换到某个会话tmux rename -t xxx重命名会话窗口管理窗口可以看成是当前会话的页签

2020-05-13 23:13:49 266

原创 Markdown学习笔记

标题区块引用列表分割线代码链接加粗斜体删除线图片反斜杠目录表格参考

2017-02-21 17:22:05 286

原创 《程序员的自我修养--链接、装载与库》笔记--第二章 编译和链接

第二章 编译和链接预编译、编译、汇编、链接预编译处理规则:删除所有“#define”,展开所有的宏;处理所有的预编译指令,比如#if, #ifdef, #elif, #else, #endif;处理#inlcude预编译指令,将被包含的文件插入到该预编译指令的位置,这是递归进行的;删除所有注释;添加行号和文件名标识;保留所有的#pragma编译器指令;编译过程就是把预处理完的文件进行一

2017-09-04 23:10:00 408

原创 《程序员的自我修养--链接、装载与库》笔记--第一章温故而知新

第一章 温故而知新计算机软件体系结构开发工具与应用程序使用操作系统应用程序编程接口;应用程序接口的提供者是运行库;运行库使用操作系统提供的系统调用接口;系统调用接口在实现中往往以软件中断的方式提供。cpu分时系统:每个程序运行一段时间后都主动让出CPU,使得一段时间内每个程序都有机会运行一小段时间。内存程序直接使用物理地址的缺点:地址空间不隔离:所有程序能直接访问物理地址,如果一不小心修改

2017-09-03 21:01:37 299

原创 Linux入门笔记2--一些工作笔记

1. Linux文件后的“~”是指该文件是临时文件,主要是编辑文本或源代码生成的。2. Linux获取root权限: 1. 终端输入: sudo passwd root 然后输入密码 2. 再输入:su root ,输入刚才的密码就能获取root权限。3. Linux退出root权限(假设推出到用户kop) 1. 终端输入:su kop 便切换到kop用户,退出r

2017-08-09 21:58:58 409

原创 Linux入门笔记1--入门命令

man info helptabcdlspwdmkdirrmcpmvcatmorelessgreptarchownchmoduseraddpasswdwhereisman, info, –help:获取帮助tab:补全命令cd:进入某个路径的命令分为绝对路径和相对路径绝对路径强调从“/”起,一直到所在路径, 如“/home/mindray/Music/

2017-08-08 23:31:56 326

原创 鸟哥的linux私房菜阅读笔记-第五章

鸟哥的linux私房菜阅读笔记

2017-07-01 14:35:53 446

原创 求职笔记-操作系统-什么是临界区?如何解决冲突?

每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。如果有若干个进程要求进入空闲的临界区,一次仅允许一个进程进入。任何时候,处于临界区内的进程不可多余一个。如已有进程进入自己的临界区,则其他所有试图进入临界区的进程必须等待。进入临界区的进程要在有限时间内退出,以便其他进程能即使进入自己的临界区。如果进程不能进入自己的临界区,则应让出CPU,避免

2017-04-04 20:04:54 1283

原创 求职笔记-操作系统-死锁

死锁的概念产生死锁的主要原因产生死锁的必要条件 常用避免死锁的方法解决死锁问题的策略死锁的避免死锁的解除死锁的概念在两个或多个并发的进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在 保持着资源 ,在未改变这种状态之前都不能 向前推进 ,称这一组进程产生了死锁。通俗的讲,就是两个或多个进程被无限期阻塞、互相等待的一种状态。产生死锁的主要原因系统资源不足进程运行推进的

2017-04-04 20:04:11 283

原创 求职笔记-操作系统-临界区,互斥量,信号量,事件的区别

临界区 Critical Section :通过对多线程的串行化来访问公共资源或一段代码 。保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么 在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操 作共享资源的目的。虽然

2017-04-04 20:03:20 287

原创 求职笔记-操作系统-进程与线程

进程与线程进程并发执行的程序在执行过程中分配和管理资源的基本单位。竞争计算机系统资源的基本单位。每一个进程都有一个自己的 地址空间 即进程空间。线程被系统独立调度和分派的基本单位,不拥有系统资源,而是与所处同一个进程中的其他线程共享进程所拥有的全部资源。关系一个线程只能属于一个进程,一个进程可以有多以线程,但至少有一个线程。资源分配给进程,同一个进程中的所有线程共享该资源。处理机分配给线程,即

2017-04-04 20:01:49 233

原创 求职笔记-操作系统-分段式存储管理、分页式存储管理的区别?

分页式储存管理用户程序的逻辑地址空间被划分为若干个固定大小的地址空间,称为“页”,内存物理地址空间也分成相对应的若干个物理块,页和块的大小相等,可将用户程序的任一页放在任一块中,实现离散分配 。有效提高内存利用率。分段式储存管理将用户程序空间分成若干个大小不等的段 ,每段可以定义一组相对完整的逻辑信息。 存储分配时,以段为单位 ,段与段在内存中可以不相邻接,也实现了离散分配。能反映程序的逻辑结构,便

2017-04-04 19:58:02 2137

原创 求职笔记-操作系统-缓冲区溢出

缓冲区溢出当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。上溢当一个超长的数据进入到缓冲区时,超出部分被

2017-04-04 19:57:02 851

原创 求职笔记-操作系统-动态链接库、静态链接库区别

dll什么意思动态链接库,存放的是各类程序的函数实现过程,当程序需要调用函数时,需要先载入DLL,然后取得函数的地址,最后进行调用。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。还可以减小程序的体积。动态链接库与静态链接库的区别静态链接库把文件中用到的函数代码直接链接进目标程序,程序运行时不再需要其他的库文件,动态链接库就是把调用的函数所在文件

2017-04-04 19:54:25 566

原创 求职笔记-网络-tcp

TCP报文结构源端口号 (2字节)目的端口号 (2字节)序号 (4字节)确认序号 (4字节)首部长度 (4位)保留长度6位 标志位 (6)窗口大小 (2字节)检验和 (2字节)紧急指针 (2字节)任选字段 (0 - 40字节):流量控制让发送发送速率不要过快,让接收方来得及接收。利用滑动窗口机制就可以实施流量控制。原理这就是运用 TCP 报文段中的窗口大小字段来控制,发送方的发送窗口不可以大于接收

2017-04-04 19:50:17 354

原创 求职笔记-网络-Http与Https区别

HTTP互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL, SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通

2017-04-04 19:45:41 218

原创 剑指offer-面试题40 : 数组中只出现一次的两个数字

//有一个数组,有两个数字只出现一次,其他数字都出现了两次,求这两个只出现一次的数字。//先用异或求出那两个数字的异或和,因为这两个数字不同,那么他们肯定有一位是不同的,那么//这个异或和的二进制肯定至少有一位是1,找出这个位置,再根据这个位置将这个数组分为两组,分别异或求和,最后这两个数组就剩下那两个数字了。#include<iostream>using namespace std;//找到

2017-04-04 19:35:18 320

原创 剑指offer-面试题39 : 二叉树的深度

//方法1 : 通过类似快排的方法找到排在第k+1位置的数,并且左边都是比他小的,因此桌面的书就是k个最小的数#include<iostream>#include<vector>using namespace std;void Swap(int &a, int &b){ int temp = a; a = b; b = temp;}//和快排类似, 找一个枢纽元

2017-04-04 19:33:59 159

原创 剑指offer-面试题39 : 二叉树的深度

//方法1 : 通过类似快排的方法找到排在第k+1位置的数,并且左边都是比他小的,因此桌面的书就是k个最小的数#include<iostream>#include<vector>using namespace std;void Swap(int &a, int &b){ int temp = a; a = b; b = temp;}//和快排类似, 找一个枢纽元

2017-04-04 19:32:53 200

原创 剑指offer-面试题38 : 数字在排序数组中出现的次数

//如果直接遍历数组,则时间复杂度是O(n);//如果用二分法分别找出第一次出现的位置和最后一次的位置,再相减,时间复杂度就是O(log(n));#include<iostream>using namespace std;int GetFirstK(int Array[], int length, int K, int start, int end){ if(Array == NU

2017-04-04 19:29:06 173

原创 剑指offer-面试题37 两个链表的第一个公共节点

/*如果两个链表有公共节点,那么从公共节点开始,他后面的节点就都相同了。可以从后向前找出第一个不相同的节点,那么上一个就是第一个相同的,可以先让长链表先走几步,直到长短相同,再同步走,直到第一个相同的*/#include<iostream>#include<stack>using namespace std;typedef struct ListNode* Node;struct L

2017-04-04 19:28:33 221

原创 剑指offer-面试题31 求连续子数组的最大和

#include<iostream>using namespace std;//常规方法int FindMaxSumOfSubArray1(int Array[], int length){ if(Array == NULL || length <= 0) { throw exception("ERROR"); } int nMax = 0;

2017-04-04 19:27:36 175

原创 剑指offer - 面试题30 找出数组最小的k个数

//方法1 : 通过类似快排的方法找到排在第k+1位置的数,并且左边都是比他小的,因此桌面的书就是k个最小的数#include<iostream>#include<vector>using namespace std;void Swap(int &a, int &b){ int temp = a; a = b; b = temp;}//和快排类似, 找一个枢纽元

2017-04-04 19:26:57 153

原创 剑指offer - 面试题30 找出数组最小的k个数

//方法1 : 通过类似快排的方法找到排在第k+1位置的数,并且左边都是比他小的,因此桌面的书就是k个最小的数#include<iostream>#include<vector>using namespace std;void Swap(int &a, int &b){ int temp = a; a = b; b = temp;}//和快排类似, 找一个枢纽元

2017-04-04 19:24:42 230

原创 剑指offer-面试题29 找到数组中出现次数超过一半的数字-1

//方法一: 找出排序在中间的那个数字. 但是不是先排序,而是只要找到排在中间的数字就行.#include<iostream>using namespace std;void Swap(int &a, int &b){ int temp = a; a = b; b = temp;}//和快排类似, 找一个枢纽元,把小于枢纽元的数放在枢纽元左边, 返回枢纽元的位置

2017-04-04 19:17:41 177

原创 剑指offer-面试题28_3 八皇后问题

//在国际象棋棋盘上摆放八个皇后,要求任意两个不能再同一行,同一列,同一对角线,.//先把一个8个数的数组用0~7填充,则每个排列都是一种放置方法,并且满足不在一行和一列,接下来求他们//的全排列,再判断是否满足不在一个对角线.#include<iostream>using namespace std;void Swap(int &a, int &b){ int temp = a;

2017-04-01 09:47:35 427

原创 剑指offer-面试题28 字符串的排列

//输入一个字符串.打印出该字符串中字符的所有排列.如输入abc, 打印abc,acb,bac, bca, cab,cba.#include <iostream>using namespace std;void Swap(char &a, char &b){ char temp = a; a = b; b = temp;}void Permutation(char

2017-04-01 09:47:00 320

原创 剑指offer-面试题26 复杂链表的复制

//实现复制一个复杂连表,在复杂连表中吗,每个节点出了指向下个节点的指针外,还有一个指针指向任意一个节点或者为NULL#include<iostream>using namespace std;typedef struct ListNode* List;typedef List Node;struct ListNode{ Node next; Node sibling;

2017-04-01 09:46:30 189

原创 剑指offer-面试题25 二叉树中和为某一值的路径

//输入一个二叉树和一个整数,打印出二叉树终结点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点经过的节点形成一条路径.#include<iostream>#include<vector>using namespace std;typedef struct BinaryTreeNode* Tree;typedef Tree Node;struct BinaryTreeNod

2017-04-01 09:46:00 244

原创 剑指offer-面试题24 二叉搜索树的后序遍历序列

//输入一个整数数组,判断该数组是不是某个二叉搜索树的后序遍历的结果,假设数组任意两个数不同#include<iostream>using namespace std;//判断左子树的所有值是否都小于根,右子树的值是否都大于根,然后递归.bool VerifyBinaryOfBST(int sequence[], int length){ if(sequence == NULL |

2017-04-01 09:45:26 162

原创 剑指offer-面试题23 分层遍历二叉树

//从上到下,从左到右,分层打印二叉树//从上到下按层遍历二叉树,从本质上讲就是广度优先遍历二叉树,不管是广度优先遍历二叉树还是图,都要用到一个队列第一步我们把起始节点放入队列,接下来每次从队列头部取一个节点,遍历这个节点之后把从它能到达的节点(对于树来说是子节点)都一次放入队列,我们重复这个便利过程,直到队列为空为止.#include<iostream>#include<queue>usi

2017-04-01 09:44:09 230

原创 剑指offer-面试题20 顺时针打印矩阵

//输入一个矩阵,按照从外向里依次顺时针打印每个数字#include<iostream>using namespace std;void PrintOneCircle(int **Matrix, int columns, int rows, int start){ int startX = start; int startY = start; int endX = c

2017-04-01 09:43:32 201

原创 剑指offer-面试题18 判断二叉树B是不是二叉树A的子结构

//输入两颗二叉树A, B,判断B是不是A的子结构typedef Tree* Node;struct Tree{ Node LeftNode; Node RightNode; int value;};//判断NodeB是否是NodeA的子结构bool HasSubTree(Node NodeA, Node NOdeB){ bool result = fa

2017-04-01 09:42:48 345

原创 剑指offer-面试题17 合并两个递增链表

//输入两个递增序列的链表,合并这两个链表,使其还是递增序列typedef struct List *Node;struct List{ Node next; int value;};Node Merge(Node node1, Node node2){ if(node1 == NULL) return node2; else if(nod

2017-04-01 09:41:39 193

原创 面试题12 打印从1到n位的最大数字

//输入数字n, 打印从1到n位的最大数字,如输入2, 打印1~99#include<iostream>using namespace std;bool IncreaseOne(char* charNumber, int n){ int nOverFlow = 0; //某一位需要进一位 int nSum = 0; //某一位的数计算后的和 bool bHig

2017-04-01 09:41:00 376

原创 剑指offer-面试题6 重建二叉树

struct BinaryTreeNode{ int m_nValue; struct BinaryTreeNode* m_nLeft; struct BinaryTreeNode* m_nRight;};BinaryTreeNode* Construct(int* preorder, int* inorder,int length){ if(preorder

2017-04-01 09:40:09 215

原创 剑指offer-面试题5 反向输出链表值

typedef struct ListNode* List;struct ListNode{ int Value; struct ListNode* Next;};void ReverseList1(List list) //使用递归{ if(list != NULL) { if(list->Next != NULL) {

2017-04-01 09:38:39 212

原创 STL源码剖析笔记-6算法(6.7 其他算法2)

6.7.2 lower_bound在不破坏排序状态的原则下,可插入value的第一个位置区间为有序的如果存在与value相等的元素,返回其迭代器如果不存在,返回第一个不小于value的元素,即这样的元素存在时应该出现的位置。template <class ForwardIterator , class T>inline ForwardIterator lower_bound(Forwar

2017-04-01 09:29:56 224

原创 STL源码剖析笔记-6算法(6.7 其他算法1)

6.7 其他算法6.7.1 单纯的数据处理adjacent_find: 找出第一组满足条件的相邻元素。template <class ForwardIterator>ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last)count: 查找某个元素出现的数目。template <class In

2017-04-01 09:29:09 348

原创 STL源码剖析笔记-6算法(6.5,6.6)

6.5 set相关算法set_union: 构造s1和s2的并集,此集合内含有s1和s2的所有元素某个值在s1内出现n次,在s2内出现m次,那么该值在输出区间内出现max(n,m)次,其中n次来自s1,其余来自s2.如果两个值相等就把s1的记录下来,两个迭代器前进,如果两个值不等,取较小的记录下来,其迭代器前进,再比较。template <class InputIterator1, cla

2017-04-01 09:28:08 248

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除