二叉树:最近的公共祖先 Lowest Common Ancestor of a Binary Tree is a project mainly written in , based on the .已知二叉树,求二叉树中给定的两个节点的最近公共祖先。 最近公共祖先: 两节点v与w的最近公共祖先u,满足在树上最低(离根最 远),且v,w两个节点都是u的子孙。 如上二叉树,6和8号节点的公共祖先有4,1;但是最近的公共祖先仅为4 这里我们发现,想要快速获取两个节点的最近的公共祖先节点,首先需要知道两个节点各自从根节点到当前的路...
二分法:二分查找(递归+非递归)实现 is a project mainly written in , based on the .二分查找又称折半查找,首先,假设表中元素是按升序排列,将 表中间位置的关键字与查找关键字比较: 如果两者相等,则查找成功;否则利用中间位置将表分成前、后两个子表: 1)如果中间位置的关键字大于查找关键字,则进一步查找前一子表 2)否则进一步查找后一子表 重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找...
二分法:查找区间search for a range is a project mainly written in , based on the .问题描述: 给定一个排序数组nums(nums中有重复元素)与目标值target,如果 target在nums里出现,则返回target所在区间的左右端点下标,[左端点, 右端点],如果target在nums里未出现,则返回[-1, -1]。 例如: arr = [2,3,4,4,4],target = 4,最终结果为[2,4] a...
二分法:search insert position 插入位置 is a project mainly written in , based on the .问题描述: 给定一个排序数组nums(无重复元素)与目标值target,如果target在nums里 出现,则返回target所在下标,如果target在nums里未出现,则返回target应该 插入位置的数组下标,使得将target插入数组nums后,数组仍有序。 例如: 数组 arr = [2,3,4,6] target = 1...
二叉树:二叉搜索树的创建和插入 is a project mainly written in , based on the .二叉搜索树又名二叉排序树。 大概简略的思维导图如下,方便记忆特性 基本二叉搜索树创建过程如下 /*数据结构如下*/ typedef struct tree {int data;struct tree *left = NULL;struct tree *right = NULL; }Tree,*TreeNode;/*Node 为二...
二叉树:二叉搜索树实现 逆序数问题 is a project mainly written in , based on the .关于逆序数的问题描述如下: 已知数组nums,求新数组count,count[i]代表了在nums[i]右侧且比 nums[i]小的元素个数。 例如: nums = [5, 2, 6, 1], count = [2, 1, 1, 0]; nums = [6, 6, 6, 1, 1, 1], count = [3, 3, 3, 0,...
二叉树:二叉搜索树的编码和解码 is a project mainly written in , based on the .二叉搜索树的编码和解码描述: 编码:即将一个二叉搜索树编码,节点数值转换为字符串 解码:即将一个字符串解码,数值转换为对应的二叉搜索树的节点 过程导图如下: 针对性编码实现如下: /*数字转字符串*/ void change_num_to_string(int val, string &tmp) {string buf;whil...
Linux系统目录树/内核源码目录树 is a project mainly written in , based on the .关于系统目录树和源码目录树的结构图如下 内核版本: centos 7.0 升级内核之后 3.10.0-957-5.1.e17...
分布式存储(ceph)技能图谱(持续更新) is a project mainly written in , based on the .一下为个人结合其他人对分布式存储 所需的技能进行总结,绘制成如下图谱,方便针对性学习。 这里对分布式存储系统接触较多的是ceph,所以在分布式存储系统分支上偏向ceph的学习。 如有分类有问题或者分支不合理,欢迎大家批评指正,目的是为了大家共同提升 文章目录分布式存储技能树Linux操作系统文件系统I/O系统I/O追踪内存管理Pag...
S-systemtap工具使用图谱(持续更新) is a project mainly written in , based on the .整体的学习思维导图如下,后续持续更新完善 文章目录安装简介执行流程执行方式stap脚本语法探针语法API函数探针举例变量使用基本应用1. 定位函数位置2. 查看文件能够添加探针的位置3. 打印函数参数(结构体)4. 打印函数局部变量5. 修改函数局部变量(慎重)6. 打印函数返回时的变量7. 打印函数调用栈8. 嵌入C代码9. 追...
哈希表的分类,创建,查找 以及相关问题解决 is a project mainly written in , based on the .总体的hash学习导图如下: 文章目录定义分类字符hash排序hash链式hash(解决hash冲突)创建链式hash查找指定数值STL map(hash)哈希分类 完整测试代码应用(常见题目)1. 回文字符串(Longest Palindrome)2. 词语模式(Word Pattern)3. 同字符词语分组(Group Ana...
G-gdb工具使用图谱(持续更新) is a project mainly written in , based on the .如下为整个GDB的学习导图...
Shell脚本自动执行,top命令无输出 is a project mainly written in , based on the .shell脚本在系统启动时推后台自动执行,发现其中/usr/bin/top -n 1 -c -b -u ceph 命令并无输出 但是系统启动之后手动执行脚本,&推后台脚本中的top仍然能够正常输出,仅仅是系统发生重启,该功能就不生效了 stackoverflow 推荐增加 -w 参数 即/usr/bin/top -n 1 -c -...
从一致性hash到ceph crush算法演进图谱(持续更新) is a project mainly written in , based on the .参考文档: https://ceph.com/wp-content/uploads/2016/08/weil-crush-sc06.pdf Ceph剖析:数据分布之CRUSH算法与一致性Hash...
搜索:广搜 词语阶梯 is a project mainly written in , based on the .问题描述以及解决过程如下导图 广搜实现如下
#include
搜索:深搜/广搜 获取岛屿数量 is a project mainly written in , based on the .题目描述: 用一个二维数组代表一张地图,这张地图由字符“0”与字符“1”组 成,其中“0”字符代表水域,“1”字符代表小岛土地,小岛“1”被 水“0”所包围,当小岛土地“1”在水平和垂直方向相连接时,认 为是同一块土地。求这张地图中小岛的数量
解决导图如下: 代码如下:
#include
A-awk外部变量传入,内部变量传出,同时过滤空格及其他字符 is a project mainly written in , based on the .变量传递 外部变量传入 lsblk|awk -v A=$A -v B=$B '{print A,B}'lsblk | awk '{print A,B}' A=$A B=$B 内部变量传出 eval $(lsblk|awk '{print "A='$1'"}')eval $(lsblk|awk 'printf("A=%s ",$1)...
Linux open系统调用的O_DIRECT标记 is a project mainly written in , based on the .前言 open系统调用中针对打开的文件描述符,可以增加一个O_DIRECT标记,该标记能够使得针对该文件描述符的写操作绕过操作系统page cache,直接进入通用块设备层,从而减少页缓存对IO效率的影响。 但是针对O_DIRECT标记有一个问题,数据及其元数据尝试落盘但是无法保证完整落盘,如果保证落盘,则需要O_SYNC的标记支...
Ceph pool 相关命令 is a project mainly written in , based on the .文章目录Pool创建ec pool创建副本pool创建Pool参数创建根故障域及添加osd其他命令Tier相关 Pool创建 ec pool创建 创建profile ceph osd erasure-code-profile set $profile_name k=$k m=$m crush-failure-domain...
Ceph osd 相关命令 is a project mainly written in , based on the .混合osd的部署 先部署所有的ssd 在/etc/ceph.conf中最后添加ssd做osd的block大小如下: 比如部署中有两个ssd,则添加 [osd.0] bluestore_block_size = xxxx [osd.1] bluestore_block_size = xxx 如上的size大小计算如下,如ssd容量...