10 2020 档案
摘要:二分查找算法是一种效率极高的算法,也是为数不多时间复杂度在`O(logn)`量级的算法。算法思想并不难理解,但是某些细节却十分复杂,因而本文尝试从一个通用框架入手,通过对不同细节的填补,生成在三种情况下适用的不同框架
阅读全文
摘要:与、或、异或、取反或者移位运算这几种基本的位操作想必诸位读者并不陌生,如果我们能在某些合适场景下使用位运算,有些时候可以大大提高算法的效率。但由于本身位运算太过灵活,甚至某些技巧比较苦涩难懂,因而,本篇文章主要介绍几种常见的或者有趣的位操作,并且给出一些用到这些技巧的算法题目,便于读者理解与掌握。
阅读全文
摘要:二叉树的遍历可以说是解决二叉树问题的基础。我们常用的遍历方式无外乎就四种`前序遍历`、`中序遍历`、`后续遍历`、`层次遍历`这四种。其中前三种遍历方式在实现时,即便采用不同的实现方式(递归方式、非递归),它们的算法结构是有很大的相似性。因而针对前三种的遍历我们会总结出对应通用的解决框架,便于在解决二叉树问题时进行使用。
阅读全文
摘要:深度优先遍历和广度优先搜索和广度优先搜索是解决图问题最常见的方式,并且在leetcode中有许多相关的变体,但万变不离其宗,其本质结构或者算法框架时固定的,因此本文BFS和DFS算法的原理总结了对应的算法框架,并提供了几道例题来解决如何使用这些框架。
阅读全文
摘要:本文主要总结了解决链表问题时,常用的一些套路,比如增加头结点、对链表进行排序、节点插入与删除、链表翻转以及快慢指针,希望能给读者以帮助。
阅读全文
摘要:本篇文章将基于SkyWalking-8.1.0版本,以开发`webflux-webclent`插件为例,分享一下对`SkyWalking`插件开发以及贡献PR的过程([PR地址](https://github.com/apache/skywalking/pull/5493)),以其能为大家了解`SkyWalking java agent`插件的开发有所帮助。
阅读全文