07 2020 档案
摘要:概述 继续刷题。。。 第十七题 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 解题思路 这道题,一开始看可能会懵,这道题的关键就是先在A中找到B的根节点,当找到B的根节点之后,事情就简单了,就从这个根节点开始以相同的方式遍历A和B,然后比较,如果一致,就
阅读全文
摘要:概述 继续刷题。。。 第九题 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解题思路 这道题的名字叫做变态跳台阶问题,那为什么叫变态我就不知道了,其实和第8题思路差不多。 假设第一次青蛙跳1级,那剩余n-1级,也就是还有f(n-1)种
阅读全文
摘要:概述 本文记录自己在刷剑指offer时候的解题,无他。。。 第一题 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题思路: 假设数组为: [[1 2
阅读全文
摘要:本文参考: 算法从入门到“放弃”(10)- 堆排序 图解排序算法(三)之堆排序 推荐大家看这两篇文章,文章中图画的非常好,我觉得作者非常用心,相比之下我就比较水了,大家可以把我的代码作为一个参考,其他的看看上面那两篇文章就可以了 概述 堆排序,听名字好像和java中的堆空间有点关系,但其实这两个兄弟
阅读全文
摘要:本文参考:图解排序算法(四)之归并排序,大家看这篇文章就够了,不用看我的文章,我的文章没他写的好 概述 前几篇文章,写了快速排序,希尔排序,这两种排序算法都是使用某种方法把数组分成几个部分,然后在每个小的部分进行排序,之后再对整体进行排序,不过快速排序和希尔排序的分段都不彻底,那什么是彻底的呢?就是
阅读全文
摘要:本文参考:图解排序算法(二)之希尔排序,大家看这篇文章就够了,不用看我的,我的文章为了给自己做个笔记,方便自己以后看 概述 希尔排序,听名字很奇怪,就是以这个算法的发明人的名字命名的,这个排序算法是对插入排序的一个优化版本,本来以为优化的很好,仔细研究了一下,很失望,优化的并不怎么样,最差的情况时间
阅读全文
摘要:概述 如果给我们一个数组,让我们把这个数组中的数从小到大排序,如果我们没有学习过什么排序算法,估计这个算法是我们最容易想到的,这个算法由于很容易想到,所以效果并不好,时间复杂度为O(n2),白瞎,基本没人用。 核心思想 第一步:遍历数组,把最小的元素找出来,和数组中的第一个元素交换位置 第二步:遍历
阅读全文
摘要:概述 最近在学习算法,面试时候问了我快速排序,当场懵逼了,竟然没有听说过,我支支吾吾了半天然后告诉面试官,我TM没听说过,然后面试官用一种看智障的眼神结束了面试(以上纯属虚构,哈哈),本来以为排序算法也就什么冒泡排序,快速排序什么的,今天自己一看,我姹,竟然那么多种排序算法,没办法了,只能一个一个的
阅读全文
摘要:概述 快速排序,听名字就是使用这玩意排序很快,但其实在最差的情况下他的时间复杂度是O(n2),和冒泡排序一样,平均时间复杂度为O(nlogn),还不错,听说使用的场景很多,但是我看了java8中ArrayList中的sort方法,使用的并不是这个算法,其他的在什么地方有使用,不太清楚。 核心思想 这
阅读全文
摘要:概述 最近在面试,发现基本上上点规模的公司都喜欢问算法的问题,但是在我实际的工作中使用这些算法的地方非常少,感觉就偶尔用一下递归,而且递归也不是什么算法,其他的很多算法很少使用,但是既然人家问了,那也没办法,说不定是因为人家的公司确实高大上,工作中很多的场景可以使用这些算法,本文介绍冒泡排序,一种很
阅读全文
摘要:概述 注册中心服务端的主要功能包括,接收客户端的服务注册,服务发现,服务下线的功能,但是除了这些和客户端的交互之外,服务端还要做一些更重要的事情,就是我们常常会在分布式系统中听到的AP和CP,作为一个集群,nacos即实现了AP也实现了CP,其中AP使用的自己实现的Distro协议,而CP是采用ra
阅读全文