学习
文章平均质量分 92
一个非常帅气的骚包
正在努力的小南同志
展开
-
goByExample——channels
channelschannel 是连接多个 go 程的管道,你可以使用一个 go 程去给 channel 发送值并且使用另一个 go 程接收值。声明channel我们使用 make(chan val-type) 的语法来声明一个 channel。package mainimport "fmt"func main() { // 声明一个 channel 采用 make(chan val-type) 语法 messages := make(chan string) // 向 chan原创 2020-09-01 15:16:38 · 218 阅读 · 0 评论 -
springboot+jQuery+JPA小小小项目
项目概述平时我们工作学习中,需要记录到自己改动过哪些文件,以方便自己日后总结归纳或者上线等。那么一般我们可以采用表格来做,不过作为小小程序员,兴趣之下就做了这个小小小项目,用来记录文件的修改记录,提供记录的增删改查功能。技术选型后端框架采用springboot整合JPA进行。因为springboot可以快速搭建一个web项目,而由于界面只涉及到一个表,也就是改动记录的表,所以使用JPA可以很方便地进行数据库操作前端框架因为是个前端小菜鸡,采用的是jQuery框架。数据库设计在sprin原创 2020-06-12 20:27:21 · 574 阅读 · 0 评论 -
平衡二叉树AVL左旋,右旋,双旋——java
概念分析平衡二叉树也叫平衡二叉搜索树,又被称为AVL树,它能保证查询效率较高他具有以下特点:它是一颗空树或者它的左右两颗子树的高度差的绝对值不大于一,并且左右子树都是平衡二叉树,其也满足二叉排序树的特点小练习看过上述的概念之后,我们应该可以分辨哪些是平衡二叉树。为什么出现平衡二叉树上一章讲的是二叉排序树,其效率一般是大于链表的,那么如果我们添加的数列是{1,2,3,4,5,6}呢...原创 2020-04-29 23:58:43 · 1084 阅读 · 1 评论 -
二叉排序树——BST(java)
概念分析二叉排序树:对于二叉排序树的任何一个非叶子节点,要求左子结点的值比当前结点的值要小,右子结点的值比当前结点的值要大。如果有相同的值,可以将该结点放在左子结点或者右子结点。注:下文中所有BST均代表二叉排序树(BinarySortTree)图解我们将数组{7, 3, 10, 12, 5, 1, 9, 2}依次添加进BST中。建立一个BST叶子节点class BinarySor...原创 2020-04-28 22:19:30 · 433 阅读 · 1 评论 -
堆排序——Java与Go实现
概念分析堆排序是使用堆这种数据结构进行排序的方法。(好像是废话)思路分析首先,我们将待排序的数组看作一个完全二叉树将此二叉树转成大顶堆或者小顶堆将堆顶元素与堆的最后一个元素互换,之后丢弃最后一个元素重复第二步与第三步,知道堆只剩一个堆顶具体解析什么是完全二叉树?对于一个深度为k,有n个节点的二叉树,其所有的结点与深度为k的满二叉树对应的编号一样,则称之为完全二叉树。数组如...原创 2020-04-26 12:07:32 · 232 阅读 · 0 评论 -
力扣3.—— 无重复字符的最长子串
1. 题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是...原创 2020-04-13 14:37:21 · 104 阅读 · 0 评论 -
浅谈Go中的init()
1. init()函数init()函数会在包被初始化后自动执行,并且在main()函数之前执行,但是需要注意的是init()以及main()函数都是无法被显式调用的,如下图:运行报错如下:2. 执行顺序那么init()是不是最先执行的呢? 答案是否定的,首先,在他之前会进行全局变量的初始化;如下代码:main.go:package mainimport ( "fmt" "ch...原创 2020-03-31 21:03:11 · 1301 阅读 · 0 评论 -
任意实体类转map集合
思路因为程序不知道具体转化时具体需要处理哪个实体类,所以运用反射机制。获取到传入的类之后,获取该类所有方法,得到该方法的get方法(一般实体类里只有属性,get、set方法吧),通过get方法得到属性的值,并且截取方法名get之后的字段,即为参数名。代码package com.nansl.util;import java.lang.reflect.InvocationTargetExce...原创 2020-03-26 15:17:43 · 1282 阅读 · 0 评论 -
遍历对角线——力扣498
题目描述给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,4,7,5,3,6,8,9]解释:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems...原创 2020-03-26 11:28:45 · 253 阅读 · 0 评论 -
java递归实现迷宫出口问题
1. 题目描述给定一个m*n的迷宫,随机给出障碍物,使得小球从起点可以走到出口2. 迷宫设计这个视自己喜好设定,障碍物也随便设点,使用二维数组模拟迷宫,1即为墙壁与障碍物3. 思路分析使用递归来模拟小球运动,假设小球从(1,1)开始,到(n-1,m-1)即为找到出口。我们规定 2 为可以找到下一条路线的点,3 为四处无法行走的点,未走过的点为0.行进方向自行规定,此处我使用顺...原创 2020-03-25 23:21:07 · 530 阅读 · 0 评论 -
中缀转后缀表达式——java(附四则运算)
1. 后缀表达式后缀表达式,即为逆波兰表达式,其运算方法为从左到右扫描表达式,当遇到符号时,取该符号前两位数,使用前一个数运算后一个数,将结果放入刚才两个数的位置,运算的两个数以及符号便去掉。由此得知,使用栈运算会很方便,下面会有完整的计算一个四则运算表达式的代码2. 思路分析1.将字符串转化为list,目的是方便操作2.简历一个符号栈与结果队列,符号栈用于存储遍历得到的符号,队列利用其先...原创 2020-03-24 23:21:52 · 239 阅读 · 0 评论 -
逆波兰表达式求值——力扣题库
1. 题目描述根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: [“2”, “1”, “+”, “3”, “*”]输出: 9解释: ((2 + 1) * 3) = 9...原创 2020-03-23 22:07:16 · 234 阅读 · 0 评论 -
约瑟夫问题——环形链表实现
1. 约瑟夫问题约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。2. 思路分析采用环形链表的方式,该链表中存储first结点与cur结点,分别表示第一个人与最后一个人,其中cur.next = first,即最后一个人指向第一个人。采取循环的方式进行,设置计数器times...原创 2020-03-18 23:28:42 · 711 阅读 · 0 评论 -
反转单链表——力扣面试题24
1. 思路本方法为头插法,即建立一个新的头结点,将原链表按序插入到头结点后,新插入的节点的next域指向之前的结点。1.1 图解1.2 运行结果2. 代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * Li...原创 2020-03-16 09:45:53 · 152 阅读 · 0 评论 -
单链表——java
1. 单链表单链表是一种链式存储结构,其包括data域以及next域。data内存放数据,next指向下一个节点。1.1 巨丑的图解如图即是单链表的逻辑结构2. 操作2.1 节点类class Node<E>{ /** * data域 */ public E data; public Node<E> next;...原创 2020-03-15 10:51:42 · 93 阅读 · 0 评论 -
数组实现队列——java
1.队列队列是一种线性表,它在队列尾部插入元素,在队列头删除元素。2.设计采用静态数组的方式实现队列,并且测试使用,所以只支持int类型,感兴趣的朋友可以自己制作泛型队列。其中设计指向头的元素:front,指向最后一个元素的下一个:rear,队列的空间:maxSize,队列的数据:data[]。front 指向队列的头元素,从0开始rear 指向队列尾元素的下一个元素 从0开始 当fr...原创 2020-03-12 23:08:26 · 89 阅读 · 0 评论 -
选择排序详解——java实现
1.概念选择排序是一种很容易理解和实现的简单排序算法。它的原理是:找到数组中最大(或最小)的元素,同该数组第一个(或最后一个)元素进行对换;之后在未完成排序的元素中(从第二个开始以后或者从倒数第二个以前)找到最小的元素,同第二个(或倒数第二个)元素进行对换;之后如上步骤继续,直至数组长度减一次为止,完成排序。即每次总是在选择最小的或最大的元素(取决于你心情,爱咋排咋排),所以叫做选择排序。2....原创 2019-11-07 16:38:43 · 121 阅读 · 0 评论 -
DataGrip连接MySQL报错
Server returns invalid timezone. Go to ‘Advanced’ tab and set ‘serverTimezon’原因:时区错误解决办法:打开mysql的客户端,输入密码后执行以下语句 set global time_zone='+8:00';再次连接后成功...原创 2019-10-15 16:52:07 · 539 阅读 · 0 评论 -
留着看MarkDown的操作
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-10-15 16:47:35 · 70 阅读 · 0 评论