递归-迷宫问题、八皇后问题
递归简单介绍递归就是方法自己调用自己,每次调用时传入不同的遍历,递归有助于编程者解决复杂的问题,同时可以让代码变得简洁
递归能解决什么样的问题
递归需要遵守的重要规则
迷宫回溯问题思路使用递归回溯来给小球找路1、如果小球能到map[6][5] 位置,则说明通路找到了2、约定:当map[i][j]为0 ...
栈(数组、单链表实现栈)
单链表实现栈思路使用链表模拟栈 思路: 入栈:当要插入数据时,直接将其放在头节点之后 newNode.next = head.next; head.next = newNode; 出栈:删除返回头节点的下一个节点, St ...
环形链表以及约瑟夫问题
Java编写环形单向链表单向环形链表,跟单链表的唯一区别就是尾结点会指向头节点,形成一个循环(循环)链表。使用 Java 实现单向环形链表的添加和遍历方法。
思路:先创建第一个节点, 让 first的next指针指向该节点,并形成环形后面当我们每创建一个新的节点,就把该节点,加入到已有的环形链表中即 ...
单链表以及常见算法题
单链表简单介绍单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。
单链表的实现实现单链表的添加、更新、删除 ...
队列(使用Java数组模拟队列)
前言将之前的知识整理一下
队列队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作简而言之,就是遵循先入先出原则。
数组模拟队列队列是一个有序列表,可以用数组或是链表来实现特点:遵循先入先出的原则。先存入队列的数据,要先取出,后存入的要后取出。
数组模拟队列思路队列本身是 ...
为什么重写equals方法后一定要重写hashCode方法?
equals方法在java的Object类中,equals()比较的是两个对象的引用地址,如果是基本数据类型比较的就是值。
为什么说重写equals方法后一定要重写hashcode方法?我的理解就是 ,当在使用HashSet(这里只拿HashSet展开)的去重机制时,他会将存入HashSet的元素进 ...
关于三次握手四次挥手的理解
TCP简述TCP协议是面向连接的、可靠的、基于字节流的传输层通信协议。其中最出名的就是三次握手和四次挥手
什么是三次握手三次握手的建立。连接必须先由一方主动发起,另一方被动接受的简单来说就是
首先客户端给服务端发送一个请求,请求连接
服务端接收到客户端发来的请求,回一个,“我已收到你发来的请 ...
学习Java注解
什么是注解百度是这样说的:从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息 。
java中注解作用分 ...
Spring Boot参数校验
Spring Boot参数校验前言在web开发中,前端的参数校验可以提高用户的体验,后端的参数校验为了数据的安全。在之前的开发中参数校验一般如下图
没有任何问题,只有有些不简洁不优雅使用 hibernate-validator 来进行参数校验
示例导入依赖版本自由选择
12345<depend ...
冒泡、选择排序
冒泡排序介绍
基本思想: 冒泡排序,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来
假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排。
时间复杂度:O(n^2)稳定度:稳定
思路
比较相邻的元素,如果前一个比后一个大,两数交换。
第一趟:第1个和第2个元素比较与交换,随后第2个和第 ...