- 博客(12)
- 收藏
- 关注
原创 堆排序算法
今天学习了下韩顺平老师的数据结构和算法视频,去复习了一下堆排序,作为一种效率特高的排序算法,堆排序算法可谓是与它名字一样难以理解,今天就来总结总结堆排序算法:基本介绍:堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复 杂度均为O(nlogn),它也是不稳定排序。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆,反之则为小顶堆,注意 : 没有 要求结点的左孩子的值和右孩子的值的大小关系。一般升序采用大顶堆,降序采用小
2020-12-30 16:31:47 297
原创 leetcode每日一题: 按要求补齐数组
题目:给定一个已排序的正整数数组 nums,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。示例:输入: nums = [1,3], n = 6输出: 1 解释:根据 nums 里现有的组合 [1], [3], [1,3],可以得出 1, 3, 4。现在如果我们将 2 添加到 nums 中, 组合变为: [1], [2], [3], [1,3
2020-12-29 12:53:12 300 1
转载 设计模式——访问者模式
访问者模式介绍最复杂的设计模式,并且使用频率不高,《设计模式》的作者评价为:大多情况下,你不需要使用访问者模式,但是一旦需要使用它时,那就真的需要使用了。访问者模式是一种将数据操作和数据结构分离的设计模式。(觉得太抽象,可以看下面的例子)。访问者模式的使用场景对象结构比较稳定,但经常需要在此对象结构上定义新的操作。需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免这些操作“污染”这些对象的类,也不希望在增加新操作时修改这些类。访问者模式的UML类图角色介绍Visito
2020-12-28 22:33:00 176
转载 JAVA8新特性-Lambda表达式
不知道最近为什么经常看到"->"这个符号,让我百思不得其解,百度后才知道原来是JAVA8新使用的表达式基本介绍:Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。语法:lambda 表达式的语法格式如下:(parameters) -> expression或(parameters) ->{ statements; }
2020-12-28 22:03:39 136
转载 JAVA8新特性-Stream
今天在力扣上刷到一题算法题,上面的解题代码在最后用了JAVA8新特性Stream流,因此去百度了一下,学习了一下JAVA8的新特性——Stream:什么是Stream?Stream(流)是一个来自数据源的元素队列并支持聚合操作元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。数据源 流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。聚合操作 类似SQL语句一样的操作, 比如filter, map, reduce, fi
2020-12-28 21:15:27 115
原创 栈的代码实现
一、采用数组实现栈import java.util.Arrays;/** * 数组实现栈 * @param <T> */class Mystack1<T> { //实现栈的数组 private Object[] stack; //数组大小 private int size; Mystack1() { stack = new Object[10];//初始容量为10 } //判断是否为空
2020-12-23 22:47:01 334
原创 MAVEN配置阿里云仓库
阿里云仓库官网:https://maven.aliyun.com/mvn/guidemaven 配置指南(此处引用官网教程):打开 maven 的配置文件( windows 机器一般在 maven 安装目录的 conf/settings.xml ),在标签中添加 mirror 子节点:<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库&l
2020-12-17 13:10:59 433
原创 手写一个简单的mybatis-plus demo项目
最近想要学习以下mybatis-plus,昨晚花一个小时建了个demo项目,效率虽不高,但还是踩了几个坑的,现在把完整的建立简单mybatis项目记录以下如图是我的项目结构:步骤一:在springboot初始化官网初始化一个springboot项目我的springboot是在spring网站 https://start.spring.io/初始化的如图:填写好相关的信息之后点解generrate按钮,等待浏览器弹出下载窗口,下载后解压对应压缩包:然后在IDEA中引入它,File-open 选择
2020-12-16 07:28:35 705
原创 二分查找算法
https://www.cnblogs.com/yellowgg/p/11272908.htmlhttps://www.cnblogs.com/kyoner/p/11080078.html
2020-12-02 00:02:57 255 2
原创 接口和抽象类区别
今天在工作时,使用了公司新封装的框架,发现里面大多使用的抽象类而不是接口,时隔这么久我早就把抽象类所忽略,趁这次机会复习了一下:抽象类简单来说,抽象类的作用就是用来预设定子类的通用特性的,这一点和接口有点相似,但也不是完全相同,因为类和类之间是通过继承来实现方法的复用的,且父类的方法不一定会被子类用到不具有强制性,且并不用在子类里再写一次父类的这些方法,同时抽象类也不能被实例化,只能被用作子类的超类。接口接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这是强制性的,
2020-12-01 17:55:32 115
原创 Windows下启动和关闭nginx
nginx的启动直接点击Nginx安装目录下的nginx.exe或者用cmd运行start nginx命令nginx的关闭nginx -s stop 或者 nginx -s quit注:nginx -s stop 会立即停止nginx,不会保存相关信息(相当于强制关机)nginx -s quit 标识正常退出nginx,推荐使用nginx的重启在修改nginx的配置后,需要对nginx进行重启操作时:nginx -s reload...
2020-12-01 10:00:56 499
原创 Java优先队列PriorityQueue
今天刷力扣每日一题的时候遇到了一个“重构字符串的问题”,我在观阅题解后发现是用贪心算法+最大堆来解决的,于是恶补了这两方面的知识:关于最大(小)堆是指最大(小)堆是指在树中,存在一个结点而且该结点有儿子结点,该结点的data域值都不小于(大于)其儿子结点的data域值,并且它是一个完全二叉树。这里不免就有人问了:完全二叉树的定义又是什么?完全二叉树不用多说先上图:上面列举了几种典型的完全二叉树的误区图和辨识图,这里我再通俗地定义一下:1.首先是二叉树2.去除最底的两层,上面部分是一个满二叉
2020-11-30 23:52:52 237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人