
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
桶排序算法是“分治法”的典型应用,主要思路是先“分桶”(或建捅)再“合桶”。其中最关键的是“分桶”,这一步最佳的时将整个待排序数组均匀分布在每个“分桶”内,然后再对每个“分桶”内部进行排序,最后将所有排序好的“分桶”依次遍历输出即可。这个思路感觉跟“计数排序算法”和“基数排序算法”十分相识。“计数排序”是通过下标将待排序数映射到“一个桶”内,然后再逐个取出;而“基数排序”是遍历所有“基数”,然后
一、二叉树后序遍历后序遍历是先遍历左子节点left,在遍历右子节点right,最后遍历父节点parent,即遍历顺序:1.2 迭代法由于后续遍历如果按照正常迭代思路去实现将不好理解和实现,仔细观察下面前序和后续遍历顺序,可以发现一个规律:前序遍历:parent ——> left ——> right前序遍历: left ——> right ——>parent,将后续遍历逆序过来遍历,则:parent
插入排序算法主要是将待排序数组依次插入有序数组中,时间复杂度是O(logn^2),空间复杂度为O(1);下面是代码实现步骤:1.先假定数组左边第一个元素是有序的void Sorts::insert(vector<int>& nums){if (nums.size() <= 1)return;......}2.依次遍历待排数组的右边第二个元素到最后一个元素void Sort
一、原理讲解1.1意图表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。1.2应用场景一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依赖于其具体类的操作;需要对一个对象结构中的对象进行很多不同并且不相关的操作,而你想避免这些操作“污染”这些对象的类;定义对象结构的类很少改变,但经常需要在此结构定义新的操作;1.3结构图
一、原理讲解工厂方法是简单工厂的改进,改进之处是每款产品对应一个工厂,该工厂只生产这一种产品,也就是只创建这个产品类对象。1.1意图定义一个创建对象的接口,让子类决定实例化哪个类。该模式使类对象的创建延迟到子类。1.2应用场景客户端不知道他所需要的对象的类;需要将类的实例延迟到子类中实现,并且一类产品有许多形态。’1.3结构图(UML图)(后面补充)1.4代码实现步骤a1 定义一个抽象产品接口类I
用vnc(tvnviewer)远程树莓派屏幕时,显示全屏,发现退出(关闭)不了全屏。经过查找,发现想要关闭全屏,需要按如下快捷键组合:Ctrl+Alt+Shift+F 参考内容:https://jingyan.baidu.com/article/86112f1396100227379787a3.html(参考:退出快捷键Ctrl+Alt+Shift+F)...
1.1出现问题博主按照这篇教程https://blog.csdn.net/naibozhuan3744/article/details/84961041搭建树莓派vnc环境或者xrdp环境时,一直出现win10系统ping不通树莓派,而树莓派却可以ping通win10莫名其妙的问题。也就是说,无论是用tvcviewer还是用putty都连接不上树莓派,如下图所示:(前提:已经确认树莓派上搭建好..
一、原理讲解别名状态对象(object for state)。1.1意图允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。1.2应用场景一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为;一个操作中含有庞大的分支语句的条件语句,且这些分支依赖于该对象的状态;1.3结构图(UML图)1.4代码实现步骤a1 定义一个状态接口类IState,定义一个接口函数han
由上面题目可知,输入是一个一维数组,输出是一个二维数组。其中输入一维数组中存储的是节点元素,输出二维数组是每层节点关键字打印。故知道该题主要考察二叉树基本的层次遍历方法,需要打印出每层节点的关键字。二叉树的层次遍历实现思路是用一个队列记录每层节点,当记录第一层节点时,弹出第一层节点进行访问,访问的同时需要遍历对应节点的左右子节点压栈;当访问完一层节点时,此时改成节点所有左右子节点都已经压栈,由于先
博主看了许多文章和一些书,发现要么代码不全,要么对备忘录的理解有偏差,要么干脆根本就不是备忘录模式,经过博主查阅十余篇文章和详细研究书本备忘录模式,总结出这篇精华的c++备忘录模式文章,感兴趣的朋友可以阅读和提出建议。# 一、原理讲解别名Token。## 1.1意图在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。







