序言最近一个月时间都在集中刷leetcode的树部分的题目,发现解法普遍都可以用二叉树的各种遍历来解题,而且一道题有很多种解法。
我们在学习深度优先遍历和广度优先遍历时就知道,这两种遍历可以用在图和树中,其中树的DFS(深度优先遍历)分为前序、中序和后序三种,这三种方式可以用递归的方式或者用栈来迭代,也可以使用Morris算法来实现。
而BFS(广度优先遍历,相对简单很多)迭代整个树并用一个队列配合即可实现层级遍历
DFS深度优先遍历,顾名思义,就是优先遍历整个树的深度,然后再遍历完整个树
深度优先遍历需要不断的往下递归遍历,而递归又涉及出栈和入栈的过程,所以三种DFS迭代的方式遍历我...
序言在构建系统时,我们都离不开对数据的存储和获取,而对于数据库的应用和设计应当是每个后端开放人员、架构师、DBA等等人员都需要去深入学习理解的基础知识(特别是构建数据密集型应用),最近在看 高性能 MySQL 第三版和MySQL 技术内幕,所以写一下笔记梳理一下知识,这两本书都比较偏上层,底层知识涉及并不太多,想了解更加底层的人推荐阅读一下数据库系统实现 (第 2 版)和数据库系统概念等书籍。
MySQL简介MySQL是一个单进程多线程支持并发处理的关系型数据库(不支持并行),并且支持跨平台,可移植,在各平台底层实现各有不同的情况下,基本上能够保证各平台上的物理体系结构的一致性,其灵活性...
序言虽然Java和C++都属于一种面向对象型的语言,但是在内存管理方面却有着非常大的区别,书上用了《围城》中的:墙内的人想出去,墙外的人想进来这句话来形容这堵高墙,因为Java有着独特的内存动态分配策略和垃圾收集器等技术,导致Java开发人员不会像C/Cpp那样要去关注内存,从而把内存控制权力交给了jvm,使得一旦发生内存泄漏和溢出,如果对于jvm管理内存不熟悉的话,将会导致很难排查问题。
运行时数据区域jvm在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。
“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java ...
序言由于公司配了一条新的8G内存条,之前开虚拟机都会导致本机内存满掉,这次终于可以愉快的开虚拟机了:smirk:,虽然手上有三台服务器,搬瓦工和Google cloud 还有阿里云各一台,但是都是最低配置的,没法做集群,而且没法开多个服务,所以决定将电脑的centos虚拟机当成一台服务器,但是公司做了很多网络限制,例如网盘,网易云,bilibili等很多网站都被做了限制,以及外网根本连不进去公司的电脑,所以只能通过代理的形式,目前使用shadowsocks 全局代理形式访问被公司封禁的网站,使用frp / ngrok和 teamview 连进公司的电脑,teamview 安装Linux的...
一直都想写点技术文章,但由于鄙人不才,知识储备太少,所以工作一年都是看书和看视频等知识输入类型,并没有进行知识输出,现在决定搭建个人博客,不断学习的过程中写点东西,来当作自己的总结和分享
博客开源框架选择搭建博客有很多种方式,可以完全靠自己纯手工搭建,或采用开源的东西,前者本人觉得太折腾,所以不太适合我这种只想写点文章的个人用户,所以我选了开源静态博客框架加GitHub Page来托管等实现方案,开源框架目前比较火的有Hexo 、Jekyll、WordPress、ghost、Simple,Octopress…
## Hexo 和 Jekyll这是两种我比较了解的框架,两个都是比较主流的选...
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
Mo...