关于二叉树中的 LCA 最近公共祖先节点
LCA:Lowest Common Ancestor
也就是在一棵二叉树中寻找给定的两个节点的最近公共节点
首先给定几个条件:
- (1) 结点中的数值域都是唯一的
- (2) p结点和q结点一定在树中
- (3) 非空结点与空结点的LCA是该非空结点
LCA:Lowest Common Ancestor
也就是在一棵二叉树中寻找给定的两个节点的最近公共节点
首先给定几个条件:
实际开发中经常会有需要对当前的数据结构进行排序的场景,最方便的情况是直接调用#include <algorithm>
中的sort
方法。但是大部分情况下使用的都不是默认的数据结构,直接在上面调用sort
很难达到理想的效果。
同时最近刷题的时候也经常碰到需要在排好序的数据上做下一步算法的情况。所以针对C/C++中自定义排序的各种实用的方法在在这边进行一下简单的汇总。
最近在考虑做一下CMU15445提升一下工程项目的水平,同时也学习一下现代C++的coding schema与代码style。project的课程网站上有一个推荐的C++新特性的学习项目BootCamp,简单看了一下写的还是很不错的,从代码加注释的方式解释新特性,而且代码整体也比较贴合现代C++。
这边简单汇总一下这个项目的内容,学习一下,也方便自己后面回顾复习。
之前配置neovim的c++ language server的时候接触到了clang,感觉现代的C++项目还是跟自己本科学的东西完全不一样。特别是现在这种像前端那边的各种formatter工具也能用在C++里面确实是非常方便。
简单又基础的Git Submodules的TLDR。上次在用hugo的时候碰到了git submodules的部分,完全是碰到知识盲区了,在这边简单记录一下git submodules的几种使用场景和用法。
一个简单的git使用方法记录,主要是每次想回滚之类的操作时候都想不起命令…
1 | git config --global user.name "loser" |
一直有把vim配置成一个宇宙无敌的IDE的冲动,但是每次配置的过程都无比繁琐(总是在莫名其妙的地方出BUG),而且最后出来的结果并不是很好用。。。
所以还是要有一个开箱即用的版本,目前我选择的Nvim配置是基于NvChad项目。为了能在新的设备上能有一个手熟的编辑器,准备在这里放一下现在用的一些配置。
由于这个项目更新迭代非常快,所以现在的这套配置文件也不知道什么时候就会失效吧…
简单记录一下一个用于打log和调用smpt发邮件的技巧
在 Linux 系统中,Tar 打包是一项非常重要的操作,它为我们提供了一种方便、高效的方式来整理和备份文件及目录。
Tar 是 tape archive(磁带归档)的缩写,最初是用于将文件存储到磁带上。如今,它主要用于将多个文件和目录合并成一个单一的归档文件,以便于存储、传输或备份
Update your browser to view this website correctly.&npsb;Update my browser now