
java
文章平均质量分 92
一个非常帅气的骚包
正在努力的小南同志
展开
-
springboot+jQuery+JPA小小小项目
项目概述平时我们工作学习中,需要记录到自己改动过哪些文件,以方便自己日后总结归纳或者上线等。那么一般我们可以采用表格来做,不过作为小小程序员,兴趣之下就做了这个小小小项目,用来记录文件的修改记录,提供记录的增删改查功能。技术选型后端框架采用springboot整合JPA进行。因为springboot可以快速搭建一个web项目,而由于界面只涉及到一个表,也就是改动记录的表,所以使用JPA可以很方便地进行数据库操作前端框架因为是个前端小菜鸡,采用的是jQuery框架。数据库设计在sprin原创 2020-06-12 20:27:21 · 610 阅读 · 0 评论 -
深度优先及广度优先详解——java
以具体的例子来距离,假设我们现在有如下一个图:我们要遍历上述这个无向图,就需要用到深度优先和广度优先遍历了,图的邻接矩阵为:[0, 1, 1, 0, 0][1, 0, 1, 1, 1][1, 1, 0, 0, 0][0, 1, 0, 0, 0][0, 1, 0, 0, 0]提一嘴邻接矩阵的意思吧,就是说 A到B是可达的,也就是1,A到C也是1,A到D并没有路线,所以A到D 是0,也...原创 2020-05-02 15:30:22 · 817 阅读 · 0 评论 -
平衡二叉树AVL左旋,右旋,双旋——java
概念分析平衡二叉树也叫平衡二叉搜索树,又被称为AVL树,它能保证查询效率较高他具有以下特点:它是一颗空树或者它的左右两颗子树的高度差的绝对值不大于一,并且左右子树都是平衡二叉树,其也满足二叉排序树的特点小练习看过上述的概念之后,我们应该可以分辨哪些是平衡二叉树。为什么出现平衡二叉树上一章讲的是二叉排序树,其效率一般是大于链表的,那么如果我们添加的数列是{1,2,3,4,5,6}呢...原创 2020-04-29 23:58:43 · 1137 阅读 · 1 评论 -
二叉排序树——BST(java)
概念分析二叉排序树:对于二叉排序树的任何一个非叶子节点,要求左子结点的值比当前结点的值要小,右子结点的值比当前结点的值要大。如果有相同的值,可以将该结点放在左子结点或者右子结点。注:下文中所有BST均代表二叉排序树(BinarySortTree)图解我们将数组{7, 3, 10, 12, 5, 1, 9, 2}依次添加进BST中。建立一个BST叶子节点class BinarySor...原创 2020-04-28 22:19:30 · 467 阅读 · 1 评论 -
力扣3.—— 无重复字符的最长子串
1. 题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是...原创 2020-04-13 14:37:21 · 128 阅读 · 0 评论 -
java、Go实现希尔排序
1. 希尔排序上篇文章我们讲述了插入排序,其效率高于冒泡以及选择排序,但是插入排序有一个问题就是如果数组中较小的数字在后方,那么数组需要移动的次数是很多的,于效率而言是不好的,由此我们引出了希尔排序。我们可以将数组中较小的数先放在数组靠前的位置,之后再进行插入排序,这样的话效率肯定会提升,此排序方法就为希尔排序。2. 实现思路将数组分为若干个小组,每个小组内进行插入排序。分小组的规则为:定...原创 2020-03-31 18:38:22 · 142 阅读 · 0 评论 -
GO、JAVA实现冒泡、选择、插入排序
1. 冒泡排序数组中每一个元素与其后一个元素进行比较,较大的或者较小的放在后面,即其与后面这个元素换位置。即第一个与第二个比,第二个与第三个比,知道倒数第二个与倒数第一个比,之后在数组的末尾就是最大或者最小的数了;之后继续上一个步骤,不过由于上一趟排序中,最后一个数已经为有序的,所以只需要比较到倒数第三个与倒数第二个比较;之后比较的次数逐次减少。java代码private void bubb...原创 2020-03-28 00:35:46 · 169 阅读 · 0 评论 -
Go、java实现八皇后问题
题目描述八皇后问题,一个古老而著名的问题,是回溯算法的典型案例。该问题由国际西洋棋棋手马克斯·贝瑟尔于 1848 年提出:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有 76 种方案。1854 年在柏林的象棋杂志上不同的作者发表了 40 种不同的解,后来有人用图论的方法解出 92 种结果。计算机发明后,有多...原创 2020-03-27 18:19:19 · 267 阅读 · 0 评论 -
任意实体类转map集合
思路因为程序不知道具体转化时具体需要处理哪个实体类,所以运用反射机制。获取到传入的类之后,获取该类所有方法,得到该方法的get方法(一般实体类里只有属性,get、set方法吧),通过get方法得到属性的值,并且截取方法名get之后的字段,即为参数名。代码package com.nansl.util;import java.lang.reflect.InvocationTargetExce...原创 2020-03-26 15:17:43 · 1330 阅读 · 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 · 326 阅读 · 0 评论 -
java递归实现迷宫出口问题
1. 题目描述给定一个m*n的迷宫,随机给出障碍物,使得小球从起点可以走到出口2. 迷宫设计这个视自己喜好设定,障碍物也随便设点,使用二维数组模拟迷宫,1即为墙壁与障碍物3. 思路分析使用递归来模拟小球运动,假设小球从(1,1)开始,到(n-1,m-1)即为找到出口。我们规定 2 为可以找到下一条路线的点,3 为四处无法行走的点,未走过的点为0.行进方向自行规定,此处我使用顺...原创 2020-03-25 23:21:07 · 585 阅读 · 0 评论 -
中缀转后缀表达式——java(附四则运算)
1. 后缀表达式后缀表达式,即为逆波兰表达式,其运算方法为从左到右扫描表达式,当遇到符号时,取该符号前两位数,使用前一个数运算后一个数,将结果放入刚才两个数的位置,运算的两个数以及符号便去掉。由此得知,使用栈运算会很方便,下面会有完整的计算一个四则运算表达式的代码2. 思路分析1.将字符串转化为list,目的是方便操作2.简历一个符号栈与结果队列,符号栈用于存储遍历得到的符号,队列利用其先...原创 2020-03-24 23:21:52 · 266 阅读 · 0 评论 -
逆波兰表达式求值——力扣题库
1. 题目描述根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: [“2”, “1”, “+”, “3”, “*”]输出: 9解释: ((2 + 1) * 3) = 9...原创 2020-03-23 22:07:16 · 269 阅读 · 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 · 776 阅读 · 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 · 174 阅读 · 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 · 111 阅读 · 0 评论 -
数组实现队列——java
1.队列队列是一种线性表,它在队列尾部插入元素,在队列头删除元素。2.设计采用静态数组的方式实现队列,并且测试使用,所以只支持int类型,感兴趣的朋友可以自己制作泛型队列。其中设计指向头的元素:front,指向最后一个元素的下一个:rear,队列的空间:maxSize,队列的数据:data[]。front 指向队列的头元素,从0开始rear 指向队列尾元素的下一个元素 从0开始 当fr...原创 2020-03-12 23:08:26 · 110 阅读 · 0 评论 -
数据结构——稀疏数组(java)
1.概念分析稀疏数组:二维数组中存在大量的无意义元素,而其中有意义的元素只占很少一部分,此时我们可以将其进行压缩,来达到减少内存消耗的作用。2.举例0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...原创 2020-03-07 10:17:11 · 147 阅读 · 0 评论 -
力扣有效的括号
1.题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。2.解题思路利用栈后进先出的特性,记录所有左括号,之后判断有括号是否与栈顶元素匹配3.代码import java.util.Stack;class Solu...原创 2020-02-26 21:56:14 · 348 阅读 · 0 评论 -
LeetCode最小栈
1.题目描述设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push...原创 2020-02-26 20:18:17 · 108 阅读 · 0 评论 -
List.add(Map)重温java参数传递
1.情景描述 //test1 public static void main(String[] args){ List<HashMap<String,Object>> list = new ArrayList<HashMap<String, Object>>(); for(int i=0;i<5;i++){...原创 2019-11-26 10:35:13 · 1586 阅读 · 0 评论