自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode24、两两交换链表中的节点

24、两两交换链表中的节点1、题目描述2、图解思路(图解)3、代码实现1、题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]2、图解思路(图解)做了四种情况下的分析如下:根据以上四种情况发现从第三种第四种情况中的第三第四步就回到了第一二

2021-05-20 17:24:00 98

原创 LeetCode之旋转链表

一、题目描述给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例 2:输入: 0->1->2

2020-07-27 00:31:16 131

原创 mm_struct(内存描述符)

文章目录一、引出概念二、Linux下数据大致是这样管理三、mm_struct一、Linux下查看mm_struct二、mm_struct是什么? 三、mm_struct四、vm_area_struct五、vm_operations_struct六、图解(在网上看到的,画的很具体就用上了)一、引出概念先看代码 #include<stdio.h> #include<u...

2019-07-29 17:40:03 2140 1

原创 Linux环境变量

文章目录一、什么是环境变量?二、Linux下的环境变量三、常见的环境变量四、有了环境变量,如何操作环境变量?五、环境变量表一、什么是环境变量? 环境变量:环境变量顾名思义就是变量,它是可变的,它可以指代某一个具有特定名称的对象,特定对象的信息可能会被多个应用程序所使用的。一般是指在操作系统中用来指定操作系统运行环境的一些参数。二、Linux下的环境变量linux的变量分为环境变量和...

2019-07-27 11:37:26 125

原创 并行、并发

并行:多个进程在多个CPU分别同时执行。并发:多个进程在一个CPU下采用进程切换的方式,在一段时间内,让多个进程都得以推进。

2019-07-24 16:26:41 82

转载 ptrace追踪

https://www.cnblogs.com/tangr206/articles/3094358.html

2019-07-24 16:11:34 121

原创 task_struct(进程描述符)

文章目录一、什么是进程?PCB是什么??二、task_struct1、Linux下如何去查看task_struct2、task_struct的类型a、调度数据成员b、信号处理c、进程队列指针d、进程标识e、时间数据成员f、信号量数据成员g、进程上下文环境h、文件系统数据成员i、内存数据成员j、页面管理k、支持对称多处理器方式时的数据成员l、其他数据成员m、进程队列的全局变量一、什么是进程?浅...

2019-07-24 15:07:45 886

原创 剑指offer之二叉树中和为某一值的路径

文章目录一、题目描述二、思路三、代码一、题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)二、思路利用递归的思路,遍历二叉树的左右子树,判断从根节点走到叶子节点所经过的val和是否为给定的值。三、代码/*struct Tree...

2019-07-18 17:03:18 60

原创 动态规划之年终奖

一、题目描述小东所在公司要发年终奖,而小东恰好获得了最高福利,他要在公司年会上参与一个抽奖游戏,游戏在一个6*6的棋盘上进行,上面放着36个价值不等的礼物,每个小的棋盘上面放置着一个礼物,他需要从左上角开始游戏,每次只能向下或者向右移动一步,到达右下角停止,一路上的格子里的礼物小东都能拿到,请设计一个算法使小东拿到价值最高的礼物。给定一个6*6的矩阵board,其中每个元素为对应格子的礼物价值...

2019-06-19 00:05:15 139

原创 浅析Linux下Gcc生成和使用静态库和动态库

文章目录一、基本概念1.1什么是库?1.2库分了哪几种?1.3怎么在Linux系统下生成库1.4一个可执行程序依赖什么库二、创建好的库如何去使用一、基本概念1.1什么是库?在Windows和Linux两大操作系统中都存在着库。实际上是一种可以执行代码的二进制形式,由于操作系统不同,因此两者的二进制是不兼容的。windows系统是不开源的所以有些库是不可见的,Linux系统是开源可见的,讨论L...

2019-05-11 09:22:00 267

原创 LeetCode和剑指offer之删除链表中的重复元素

文章目录一、题目描述二、思路三、代码表示一、题目描述给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现示例 1:示例1:输入: 1->2->3->3->4->4->5输出: 1->2->5 的数字。示例 2:输入: 1->1->1->2->3输出: 2->3二、思路根据题目...

2019-04-17 15:55:25 627

原创 剑指offer之包含min函数的栈

文章目录一、题目描述二、思路三、代码实现一、题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))二、思路定义两个栈s1,s2,s1存的是整个数据,s2栈存的数据保证每一次入数据都比上一次的数据要小,到最后时就是最小的数据。三、代码实现class Solution {public: stack<int> s1...

2019-03-26 23:53:50 99

原创 剑指offer之数的子结构

文章目录 一、题目描述二、代码及理解三、个人总结及感受 一、题目描述    输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)二、代码及理解子树的可能:    判断是否是子树,当pRoot1和pRoot2一起递归遍历,pRoot2如果遍历结束说明就是子树,如果没有遍历结束,说明不是子树。class Solution {public: ...

2019-03-15 18:56:22 124

原创 剑指offer之二维数组中的查找

文章目录一、题目描述二、思路三、代码一、题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。二、思路数组的每个元素都是依次递增的,先对当前行的最后元素进行比较,如果较大就不需要在当前行进行比较,较小再依次比较,直到找到目标数。三、代码cla...

2019-03-15 16:46:29 136

原创 剑指offer之两个栈实现一个队列

一、题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。二、图解三、代码实现class Solution{public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()) ...

2019-01-26 16:14:06 146

原创 剑指offer之二叉树的镜像

一、题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5二、思路生成的二叉镜像树,需要不断在原树进行查找遍历位置,树的结构比较复杂,不易进行遍历...

2019-01-25 13:32:25 132 1

原创 AVLTree

AVLTree1、定义二叉搜索树虽然可以缩短查找效率,但是如果给定的数据已经是有序或接近有序二叉搜索树将退化为单支树,当查找元素相当于在顺序表中搜索元素,此时,二叉搜索树起不到快速查找元素的作用。因此,当向二叉搜索树插入新节点后,保证每个节点的左右子树的高度差不超过1,超过1时需要调整树的高度...

2019-01-24 15:41:41 195

原创 二叉搜索树

二叉搜索树文章目录二叉搜索树4.1.1 二叉搜索树的概念4.1.2 二叉搜索树操作1、二叉搜索树的查找2、二叉搜索树的插入a、树为空,则直接插入b、树不空,按二叉搜索树性质查找插入位置,插入新节点3、二叉搜索树的删除4.1.3 二叉搜索树的实现4.1.4 二叉数的性能分析4.1.1 二叉搜索树的概念​ 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:​ 1)若它的...

2019-01-22 13:26:47 443

原创 LeetCode-692-前K个高频单词

前K个高频单词一、题目描述给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单...

2019-01-16 10:44:42 1377

原创 进程

一、描述进程-PCB● 进程信息被放在一个叫做进程控制块的数据结构中,表示的是进程的集合体。● 在Linux操作系统下的PCB是task_struct● task_struct 是Linux下内核的数据结构,它会被装载到内存里并包含着进程的信息二、进程 ● 标识符:描述本进程的唯一标识符,用来区别其他进程 ● 状态:任务状态,退出代码,退出信号等。 ● 优先级:相对于其他进程的优先...

2018-10-23 18:07:41 108

原创 Linux下gdb的调试

一、Linux下的gdb调试 要使用gdb调试,必须在源代码生成二进制程序时,加上-g 选项 例如:gcc -o main main.c -g二、如何调试 首先,先把代码生成可以调试的二进制程序(gcc -o main main -g); 其次,输入命令r/run命令让程序运行起来; 最后,通过一些命令实现与windows下的visual studi...

2018-10-21 21:07:03 365

原创 LINUX编译器-gcc/g++使用

一、gcc和g++在Linux下执行编译分为四步:1、预处理-------(宏替换、文件展开、条件编译、去注释)2、编译---------(生成汇编)==&gt; &lt;检查是否出现语法错误&gt;3、汇编---------(生成机器可识别的二进制代码)4、链接---------(生成可执行文件)二、gcc和g++命令如何编译命令格式 gcc/g++ [选项] 要编译的文件 [选...

2018-10-19 17:38:14 216

原创 继承

一、什么是继承? **浅显的说,继承就是父类的公有(public)可见的部分,子类会继承父类公有的成员** **举个栗子:**class Person{public: void Display() { cout &amp;amp;lt;&amp;amp;lt; &amp;quot;this is person&amp;quot;&amp;amp;lt;&amp;amp;lt; endl; }protect

2018-10-18 18:34:13 131

原创 多态

多态调用需要满足:1、虚函数的重写,2、对象时基类的指针或引用,当满足这两点时才说明是多态。虚函数—类的成员函数前面加上virtual关键字,则这个成员函数成为虚函数。虚函数重写—子类定义了与父类相同的虚函数时,则就称子类重写了父类的这个虚函数。先来一段代码:#include&amp;lt;iostream&amp;gt;#include&amp;lt;Windows.h&amp;gt;using namespace...

2018-09-22 00:11:03 105

原创 创建一个属于自己的shell

1 /*写一个属于自己的微型myshell 2 * 功能:myshell&gt;ls 3 * 能够执行基础Linux 命令 4 * 5 */ 6 #include&lt;stdio.h&gt; 7 #include&lt;unistd.h&gt; 8 #include&lt;errno.h&gt; 9 #i...

2018-09-20 13:11:52 1484

原创 双向链表

DList.c#include"DList.h"DListNode* BuyDListNode(DataType x){ DListNode *newnode = (DListNode*)malloc(sizeof(DListNode)); assert(newnode); newnode-&gt;_data = x; newnode-&gt;_next = NULL; newn...

2018-09-19 21:36:07 100

原创 僵尸,孤儿进程

- 使用代码模拟实现僵尸进程, 孤儿进程的场景. 先看下面的代码 #include&amp;amp;lt;stdio.h&amp;amp;gt; 2 #include&amp;amp;lt;unistd.h&amp;amp;gt; 3 #include&amp;amp;lt;errno.h&amp;amp;gt; 4 #include&amp;amp;lt;string.h&amp;amp;gt; 5 #include&

2018-09-13 21:38:40 145

原创 linux_基础命令

1、进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls等)改文件动作, 需要哪些权限 Linux权限管理: **1,文件和文件目录的所有者:u—User 2,文件和文件目录的所有者所在的组的用户:g—Group 3,其他用户:o—Others 文件访问权限的种类: “r”—-读权限(4); “w”—写权限(2); “x”—可执行权限(1); **...

2018-09-13 00:09:38 116

原创 C++入门

1、什么是C++ C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。2...

2018-06-09 15:11:09 459

原创 大数据处理

1)给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址?!解决方法将100G分成1000份,切分最好不均等切割,将每个ip映射到相应文件中 ip%1000找出每个文件中的出现次数最多的一个ip再将1000份里找出来的最多的一个放入一个哈希表中进行比较找出最大值2)与上题条件相同,如何找到top K的IP?如何直接⽤用Linux...

2018-05-20 14:26:00 267

原创 C语言实现简单的哈希表

test.c#include&lt;stdlib.h&gt;#include&lt;windows.h&gt;#include&lt;assert.h&gt;#include"HashTable.h"int main(){ test(); system("pause"); return 0;}HashTable.c#include&lt;asse...

2018-05-20 14:11:50 1202

原创 贪吃蛇

UI.h#include&lt;stdio.h&gt;#include&lt;time.h&gt;#include&lt;windows.h&gt;#include&lt;stdlib.h&gt;#include"snake.h"void Pos(int x, int y)//设置光标位置{ COORD pos; HANDLE hOutput; pos.X...

2018-05-16 10:47:32 228 1

原创

heap.c`#include&quot;Heap.h&quot;void HeapInit(Heap* hp, HeapDateType* a, size_t n)//初始化{ if (a == NULL) { return; } hp-&amp;gt;_size = 0; hp-&amp;gt;_a = (HeapDateType*)malloc(sizeo...

2018-05-05 22:15:44 156

原创 顺序表

Seqlist.h#pragma once #define N 10typedef int DataType;typedef struct SeqList{ DataType _a[N]; size_t size;}SeqList;//初始化尾插、删 头插、删void SeqlistInit(SeqList *pSeq);void SeqlistPushBack(...

2018-03-31 18:37:29 83

原创 单链表

SListNode.h#pragma oncetypedef int DataType;typedef struct SListNode{ struct SListNode*_next; DataType _data;}SListNode;SListNode* BuySListNode(DataType x);void SListPrint(SListNode* ...

2018-03-31 18:23:04 79

原创 通讯录1

#include&lt;stdio.h&gt;#include&lt;assert.h&gt;#include&lt;windows.h&gt;#pragma warning(disable:4996)struct Stu { char name[8] ; char sex[2]; int age; char add[100]; long long...

2018-03-18 22:16:07 363

原创 指针理解

判断一个指针的类型取决于优先级。例如: 指针数组 int *p[10] //中括号比星号的优先级高 表示p是一个存放10个元素的数组,每个元素都是指针类型。 数组指针 int (*)p[10] //p先跟星号结合,再跟中括号结合 表示p是一个指针类型,指向一个有10个元素的数组。 函数指针 int (*p)(); 表示p是一个指针类型,指向一

2018-01-10 16:15:28 241

原创 调用函数的过程---------栈桢

#include#includevoid myadd(int x){  printf("hello bit\n");}int main(){   int a=0;   myadd(a);  system("pause");  return 0;}

2017-12-25 16:58:36 261

原创 扫雷

test.c#define _CRT_SECURE_NO_WARNINGS 1#include"game.h"void menu1(){ printf("*********************************************\n"); printf("************1.play 0.exit******************\n");

2017-12-08 16:38:27 200

原创 三子棋

game.c#define _CRT_SECURE_NO_WARNINGS 1#include"game.h"void InitBoard(char board[ROW][COL], int row, int col){ memset(board, ' ', row*col * sizeof(board[0][0]));}void PrintBoard(char board[RO

2017-12-08 16:34:21 124

空空如也

空空如也

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

TA关注的人

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