理解
zcl9796
这个作者很懒,什么都没留下…
展开
-
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 阅读 · 0 评论 -
LeetCode-692-前K个高频单词
前K个高频单词一、题目描述给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单...原创 2019-01-16 10:44:42 · 1369 阅读 · 0 评论 -
二叉搜索树
二叉搜索树文章目录二叉搜索树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 · 440 阅读 · 0 评论 -
剑指offer之二维数组中的查找
文章目录一、题目描述二、思路三、代码一、题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。二、思路数组的每个元素都是依次递增的,先对当前行的最后元素进行比较,如果较大就不需要在当前行进行比较,较小再依次比较,直到找到目标数。三、代码cla...原创 2019-03-15 16:46:29 · 133 阅读 · 0 评论 -
剑指offer之数的子结构
文章目录 一、题目描述二、代码及理解三、个人总结及感受 一、题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)二、代码及理解子树的可能: 判断是否是子树,当pRoot1和pRoot2一起递归遍历,pRoot2如果遍历结束说明就是子树,如果没有遍历结束,说明不是子树。class Solution {public: ...原创 2019-03-15 18:56:22 · 122 阅读 · 0 评论 -
剑指offer之包含min函数的栈
文章目录一、题目描述二、思路三、代码实现一、题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))二、思路定义两个栈s1,s2,s1存的是整个数据,s2栈存的数据保证每一次入数据都比上一次的数据要小,到最后时就是最小的数据。三、代码实现class Solution {public: stack<int> s1...原创 2019-03-26 23:53:50 · 98 阅读 · 0 评论 -
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 · 614 阅读 · 0 评论 -
浅析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 阅读 · 0 评论 -
动态规划之年终奖
一、题目描述小东所在公司要发年终奖,而小东恰好获得了最高福利,他要在公司年会上参与一个抽奖游戏,游戏在一个6*6的棋盘上进行,上面放着36个价值不等的礼物,每个小的棋盘上面放置着一个礼物,他需要从左上角开始游戏,每次只能向下或者向右移动一步,到达右下角停止,一路上的格子里的礼物小东都能拿到,请设计一个算法使小东拿到价值最高的礼物。给定一个6*6的矩阵board,其中每个元素为对应格子的礼物价值...原创 2019-06-19 00:05:15 · 136 阅读 · 0 评论 -
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 · 853 阅读 · 0 评论 -
ptrace追踪
https://www.cnblogs.com/tangr206/articles/3094358.html转载 2019-07-24 16:11:34 · 117 阅读 · 0 评论 -
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 · 2096 阅读 · 1 评论 -
剑指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 · 145 阅读 · 0 评论 -
剑指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 · 189 阅读 · 0 评论 -
C语言实现简单的哈希表
test.c#include<stdlib.h>#include<windows.h>#include<assert.h>#include"HashTable.h"int main(){ test(); system("pause"); return 0;}HashTable.c#include<asse...原创 2018-05-20 14:11:50 · 1197 阅读 · 0 评论 -
大数据处理
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 · 262 阅读 · 0 评论 -
C++入门
1、什么是C++ C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。2...原创 2018-06-09 15:11:09 · 452 阅读 · 0 评论 -
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 阅读 · 0 评论 -
僵尸,孤儿进程
- 使用代码模拟实现僵尸进程, 孤儿进程的场景. 先看下面的代码 #include&amp;lt;stdio.h&amp;gt; 2 #include&amp;lt;unistd.h&amp;gt; 3 #include&amp;lt;errno.h&amp;gt; 4 #include&amp;lt;string.h&amp;gt; 5 #include&原创 2018-09-13 21:38:40 · 143 阅读 · 0 评论 -
创建一个属于自己的shell
1 /*写一个属于自己的微型myshell 2 * 功能:myshell>ls 3 * 能够执行基础Linux 命令 4 * 5 */ 6 #include<stdio.h> 7 #include<unistd.h> 8 #include<errno.h> 9 #i...原创 2018-09-20 13:11:52 · 1483 阅读 · 0 评论 -
多态
多态调用需要满足:1、虚函数的重写,2、对象时基类的指针或引用,当满足这两点时才说明是多态。虚函数—类的成员函数前面加上virtual关键字,则这个成员函数成为虚函数。虚函数重写—子类定义了与父类相同的虚函数时,则就称子类重写了父类的这个虚函数。先来一段代码:#include&lt;iostream&gt;#include&lt;Windows.h&gt;using namespace...原创 2018-09-22 00:11:03 · 105 阅读 · 0 评论 -
继承
一、什么是继承? **浅显的说,继承就是父类的公有(public)可见的部分,子类会继承父类公有的成员** **举个栗子:**class Person{public: void Display() { cout &amp;lt;&amp;lt; &quot;this is person&quot;&amp;lt;&amp;lt; endl; }protect原创 2018-10-18 18:34:13 · 131 阅读 · 0 评论 -
LINUX编译器-gcc/g++使用
一、gcc和g++在Linux下执行编译分为四步:1、预处理-------(宏替换、文件展开、条件编译、去注释)2、编译---------(生成汇编)==> <检查是否出现语法错误>3、汇编---------(生成机器可识别的二进制代码)4、链接---------(生成可执行文件)二、gcc和g++命令如何编译命令格式 gcc/g++ [选项] 要编译的文件 [选...原创 2018-10-19 17:38:14 · 214 阅读 · 0 评论 -
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 · 362 阅读 · 0 评论 -
进程
一、描述进程-PCB● 进程信息被放在一个叫做进程控制块的数据结构中,表示的是进程的集合体。● 在Linux操作系统下的PCB是task_struct● task_struct 是Linux下内核的数据结构,它会被装载到内存里并包含着进程的信息二、进程 ● 标识符:描述本进程的唯一标识符,用来区别其他进程 ● 状态:任务状态,退出代码,退出信号等。 ● 优先级:相对于其他进程的优先...原创 2018-10-23 18:07:41 · 106 阅读 · 0 评论 -
指针理解
判断一个指针的类型取决于优先级。例如: 指针数组 int *p[10] //中括号比星号的优先级高 表示p是一个存放10个元素的数组,每个元素都是指针类型。 数组指针 int (*)p[10] //p先跟星号结合,再跟中括号结合 表示p是一个指针类型,指向一个有10个元素的数组。 函数指针 int (*p)(); 表示p是一个指针类型,指向一原创 2018-01-10 16:15:28 · 234 阅读 · 0 评论