- 博客(44)
- 收藏
- 关注
原创 七.环境搭建之基础模块—搭建spring单元测试环境
测试mapper1.导入spring单元测试模块去maven仓库导入即可,添加到pom.xml配置中<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.7.RELEASE</version> <scope>te
2021-05-26 12:54:31
433
2
原创 六.环境搭建之基础模块—修改Mapper文件
先增加两个方法,在查询的时候没有部门的名字,因此添加方法来查询的时候把部门的名字一起返回。先在dao/EmployeeMapper中添加两个接口: List<Employee> selectByExampleWithDept(EmployeeExample example); Employee selectByPrimaryKeyWithDept(Integer empId);再在bean/Employee中添加部门变量和get以及set方法:private Department
2021-05-24 20:32:09
481
1
原创 五.环境搭建之基础模块—mybatis逆向工程
Mybatis配置:1.mybatis-config.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <settings&
2021-05-24 19:29:40
230
5
原创 Leetcode108 将有序数组转换为二叉搜索树(简单篇)
题目如下:给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。示例 1:输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]自己的思路:这个升序数组其实就是二叉树的中序遍历得来的结果,但是反推的话好像不太会,应该有很多种可能。大神思路:这里其实就是用了二分法,选取中间的数作为根节点。这样两边就能高度平衡了。
2021-05-24 12:09:25
123
原创 Leetcode94 二叉树的中序遍历(简单篇)
题目如下:给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]自己的思路:二叉树的遍历是很常用的,一般有先序遍历、中序遍历和后序遍历。这里考察的就是中序遍历,前中后三个其实代表的是根节点的顺序位置,中序遍历就是根节点在中间,先遍历左子树,再是根节点,最后才是右子树。一般有递归和非递归的方法。大神思路:/** * Definition for a binary tree node. * public cl
2021-05-23 16:48:37
182
原创 Leetcode104二叉树的最大深度
题目如下:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。自己的思路:终于自己写出了一道题,这道题确实很简单,使用一个简单的递归就可以了,利用深度优先搜索或者广度搜索都可以,深度优先就用递归不需要借助其他的栈什么的了,就比较简洁。class Solution { public int maxDepth(TreeNode root) { if(root == null){ return 0; }
2021-04-29 15:04:21
60
原创 Java核心技术卷1阅读笔记第六章:接口、lamda表达式与内部类
当使用arrays.sort对我们自定义的类对象排序时,需要这个类已经实现了comparable接口,并重写了自己需要的compareTo方法comparator可以说是在类外部实现比较好拓展,而comparable是在类内部实现的lamda表达式是java8的一个重要新特性内部类分为成员内部类、局部内部类、匿名内部类和静态内部类成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员),在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指.
2021-04-27 21:29:52
72
原创 Leetcode100 相同的树(简单篇)
题目如下:给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3]输出:true自己的思路:想的是用递归遍历两棵树,一直比较下去,遇到不等的就返回false,这里我是前序遍历,结果时间超出限制了。。。class Solution { public boolean isSameTree(TreeNode p, TreeNode q)
2021-04-27 20:31:02
100
原创 Java核心技术卷1阅读笔记第五章:继承
超类又叫父类、基类,子类又叫孩子类。一个孩子类只能有一个超类,调用超类的关键字是superfinal修饰的类不能被继承强制类型转换的目的是要在暂时师忽视对象的实际类型后使用对象的全部功能。istanceof 判断能否强制转换成功...
2021-04-26 19:53:36
83
原创 Leetcode88 合并两个有序数组
题目如下:给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]自己的思路:看到这道题想到可以用双指
2021-04-26 16:57:00
60
原创 Leetcod225 用队列实现栈(简单篇)
题目如下:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通队列的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。注意:你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front、s
2021-04-21 19:35:13
105
原创 Leetcode83 删除排序链表中的重复元素(简单篇)
题目如下:存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。示例 1:输入:head = [1,1,2]输出:[1,2]自己的思路:对于一个链表,从头节点开始遍历,如果它的next的val值等于本身的val,说明需要去掉,那么直接让head.next = head.next.next,直到遍历到next为空停止。大神思路:这个确实是这样的思路。/** * Definition for singl
2021-04-21 15:52:40
103
原创 Leetcode70 爬楼梯(简单篇)
题目如下:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 . 1 阶 + 1 阶2 . 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 . 1 阶 + 1 阶 + 1 阶2 . 1 阶 + 2 阶3 . 2 阶 + 1 阶自己的思路:每一次的下一步选择不是1就是2,感觉像递
2021-04-19 23:44:59
69
原创 Leetcode69 x的平方根(简单篇)
题目如下:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。自己的思路:这道题确实很简单,就用sqrt函数求个根号,然后强转类型为int就可以舍去小数部分了,这是我的代码:class Solution { public int
2021-04-19 20:53:00
163
原创 Leetcode66 加一(简单篇)
题目如下:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]自己的思路:如果要加一,那么首先考虑的是末尾数字的情况,如果最后一个数不是9,那么只要把数组最后一个数字加上1在返回就可以了,如果最后一个是9,就
2021-04-14 13:42:02
93
原创 Java学习路线(总览及目录)
介绍本人是刚入门java学习的一名小白,从十二月开始学习java,目前中南研究生在读,而且本科和研究生都是非科班,写博客的目的主要是为了记录学习的历程和笔记,如果能有可以帮助到其他人的我也很荣幸,博客写的不太好还望勿喷。刚刚开始学习java,已经决定走这一条路了,本来是算法无奈太卷而且感觉太难,所以选择开发,目前的学习路线是跟着尚硅谷走的,b站可以搜到,尚硅谷的老师都讲的非常的好,所以我在博客目前也主要是记录一些学习的笔记,尚硅谷的视频自己去看就行了,这里记录一些自己平常忘记的,以及不熟悉和重点的东西。
2021-04-14 10:36:43
93
原创 Java核心技术卷1阅读笔记第四章:对象与类
在类之间,最常见的关系有依赖,聚合和继承。构造器用来对类进行初始化,伴随着new操作符一起调用static可以修饰方法、类和变量,表示都可以通过不需要创建实例就可以直接调用:修饰变量的时候:在内存中只有一个复制,在类被加载的时候就被分配了空间。修饰方法的时候:也是不需要创建对象就可以调用,方法中不能有super和this关键字,而且只能放访问所属类的静态成员变量和方法。修饰类的时候:一般是内部静态类这种情况。构造器一般有无参的和有参的,有参的这个就称为重载,一般编写了有参的构造器都要编写无参的.
2021-04-14 10:29:17
67
原创 Leetcode58 最后一个单词的长度(简单篇)
题目如下:给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = “Hello World”输出:5示例 2:输入:s = " "输出:0自己的思路:这个题思路比较简单,就简单的遍历,遇到空格就停下计数,保存成max,最后保留最大的max,但是我这里如果只有一个单词的时候,我不太对,不知道该在哪里改一下class Solutio
2021-04-13 21:16:09
64
原创 Java核心技术卷1阅读笔记第三章:Java的基本程序设计结构
1.关于基本数据类型的初始化问题,如果基本数据类型作为普通变量,只是声明但是没有赋值而直接使用的话就会报错,但是作为类的成员变量就会自动给他初始化默认值。2.关键字final修饰变量就是常量了,命名记得全部大写。3.枚举类变量 比如:enum Size{SMALL, MEDIUM,LAGRE}...
2021-04-13 11:09:36
109
原创 Leetcode53 最大子序和(简单篇)
题目如下:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1自己的思路:自己是想的用循环嵌套,慢慢遍历,先从数组第一个开始遍历,后面的依次加起来,保留局部最大值,然后从第二个数开始遍历,保留局部最大值,与前面那个比较,保留大的,这样就最后保存到
2021-04-13 10:09:10
87
原创 Leetcode38 外观数列
题目如下:给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:111211211111221第一项是数字 1描述前一项,这个数是 1 即 “ 一 个 1 ”,记作 “11
2021-04-13 09:08:09
78
原创 查找算法:二分查找
1.二分查找的概念二分查找又可以叫做折半查找,意思就是将一个数组拆成一半来查找,先找到数据中间的那个数和我们要找的目标数进行比较,如果发现比中间的数大,就向右边继续折半查找,如果小就向左边查找,所以这个算法需要要求这个数组是已经排好序的,默认是从小到大排序。2.二分查找的实现public int binarySearch(int nums[],int target,int left,int right){ int mid = (left + right)/2; //中间位置 if(target &
2021-04-12 09:46:10
69
原创 Leetcode35 搜索插入位置(简单篇)
题目如下:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1: 输入: [1,3,5,6], 5 输出: 2示例 2: 输入: [1,3,5,6], 2 输出: 1自己的思路:这很明显是一个数组搜索查找的问题,找到匹配值就返回索引这个比较简单,但是还加了一个限制条件,需要如果没找到的时候返回插入的地方的索引.大神思路:class Solution { public int se
2021-04-12 09:15:47
85
原创 Leetcode28 实现srtStr(简单篇)
题目如下:给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 :输入: haystack = “hello”, needle = “ll” 输出: 2自己的思路:如果直接用字符串函数可以直接匹配字符串。如果用遍历来做,需要两个遍历来做大神思路:其实这是一个字符串匹配问题,可以用KMP算法这里列出的是官网的暴力匹配 public int strStr(S
2021-04-09 18:01:27
103
原创 IDEA安装及配置jdk
1 官网下载安装包官网2 安装下载好后按照步骤安装最后install安装就完成了。3 配置点开IDEA不导入配置后面就是一些主题肤色设置 可以跳过进去设置也可以在这里设置好。
2021-04-09 13:07:43
17157
原创 Leetcode27 移除元素(简单篇)
题目如下:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。自己的思路:输入一个数组和数值,输出一个改变后的数组和新的数组长度,首先肯定是遍历这个数组,当发现有和val相等的值时,就记录下新的长度,让长度减一,并且同时从这个数字开始让数组每一个nums[i] = nums[i+1],思路应该是这
2021-04-08 22:29:55
61
原创 Leetcode21 合并两个有序链表(简单篇)
题目如下:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = [] 输出:[]示例 3:输入:l1 = [], l2 = [0] 输出:[0]自己的思路:首先肯定得判断两个链表是否为空,如果两个都为空的话就直接返回空链表,如果只有一个为空,就返回那个不为空的链表,如果两个都不是空就需要比较
2021-04-08 09:41:56
62
原创 三. 环境搭建之bootstrap的引入
一 bootstrap介绍bootstrap是一款前端框架,可以用来快速开发静态网页,如果我们一些样式等都从0写起就太费时间了,所以这款框架给我们提供了很多强大的功能。二 下载首先百度直接搜索bootstrap,进入官网,点击中文文档再点击下载,进入下载界面下载还好可以看到这些文件夹:里面都是它的样式、字体等。三 导入idea在文件结构 webapp下新建一个static包,将刚刚解压好的文件放进即可。然后我们来测试一下怎么使用:在webapp下新建一个jsp文件,并且在stati
2021-04-07 12:36:48
4259
原创 Idea每次修改jsp可以及时刷新的办法
首先进入tomcat服务器设置:run-edit configuration-如图:on ‘update‘ action:当用户主动执行更新的时候更新on frame deactication:在编辑窗口失去焦点的时候更新两个都设置上Update classes and resources就好了如果没有这个选项的话,还是在当前视图,点击上方有一个deployment,点进去如果你的是war打包文件,就没有这个选项把那个删除了,选取exploded即可了另外这两个区别:war explod
2021-04-07 12:18:50
1403
原创 二. 环境搭建之引入jar包
引入jar包:springspringmvcmybatis数据库连接池,驱动包其他(在使用过程中引入,比如jstl、junit、servlet-api)导jar包肯定是去https://mvnrepository.com/查找,这里举一个例子,比如spring webmvc:点击第一个进去,找到合适的版本,点进去,可以看到下面有一段这样的复制导入idea即可其他包类似导入即可,全部导入,等包下载好就可以了。然后这里关于需要导入一些什么包也记录一下:spring webmvc:使
2021-04-06 20:37:44
331
原创 一.环境搭建之创建maven工程
创建maven工程虽然新版的IDEA已经给我们配置好了Maven,可以直接创建,默认本地仓库都是在C:/user/.m2/repository下的,这里也可以更改到自己的盘下,但是想自己配置一遍其他环境下的情况,所以自己配置一个maven,让以后创建maven工程的时候都可以直接调用。1.下载maven官方地址:http://maven.apache.org/download.cgi下载后解压到你的D或者E盘都可以在同目录下新建一个LocalRepository文件夹用来作为本地仓库2.配置仓
2021-04-06 17:10:41
137
原创 尚硅谷SSM框架整合案例笔记(IDEA)——总览
一 主要实现功能实现部门员工的CRUD二 需要用到的框架基础框架:SSM数据库:mysql前端页面:bootstrap项目的依赖管理:maven分页:pagehelper插件逆向工程:mybatis Generator三 基本步骤1.环境搭建...
2021-04-06 14:04:15
587
原创 线性表篇:普通队列
一 队列队列也是和栈类似的线性表,只不过栈遵循先进后出的原则,而列表则遵从先进先出的原则,普通队列一般有头部和尾部,数据从头部出,从尾部进,队列一般还有双端队列、并发队列、阻塞队列等,这里只说普通队列的实现。二 自己实现普通队列package queue;//这里使用数组实现队列public class Queue { private int[] queue; int maxSize; //最大容量 int front ; //队列头 int rear ; //队
2021-04-05 16:59:07
90
原创 Leetcode 26 删除有序数组中的重复项(简单篇)
题目如下:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。自己的思路:首先题目条件是有序数组,那么肯定的是如果遍历的时候遇到不一样的就可以返回了,遇到一样的话就得继续往下走,直到遇到不一样的,然后把中间这些一样的数只保留一个下来,然后继续往后遍历,因为这里限制了只能用O(1)的额外空间,应该也就是用一个变量来临时存放吧,中间这一步虽然有一点思
2021-04-05 16:32:24
217
原创 线性表篇:栈
一 栈栈是一种只能在一端进行插入和删除操作的线性表,其中这一端叫做栈顶,并且栈具有的最大特点就是先进后出,就好比一列人进入了一个前面是死胡同的通道,那么最先进去的人就被堵在里面了,只能等到前面的人走完才能出来,这就是栈的特点。我们指导List接口下有一个Vector,Vector下有一个stack,但是一般可以不用这个,这个是遗留下来的类,一般建议可以用Queue接口下的Deque,关于这个可以用作栈来使用。下面有参考文章链接。二 自己实现栈package stack;public class
2021-04-02 12:55:46
125
原创 IDEA实用快捷键(随时补充更新)
自动补全括号什么的:ctrl + alt + enter自动纠错,实例化命名等:alt + enter查看类或者接口的所有继承关系:ctrl + h查看类的所有方法:ctrl + F12注释:ctrl + /
2021-04-02 12:33:01
105
原创 Leetcode 14 最长公共前缀(简单篇)
题目如下:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。自己的思路:每次都是直接想到暴力求解,先遍历给定的字符串数组里面的每个字符串,然后依次对每一个字符比较是否相同,感觉这样的话时间复杂度就会非常的高,第二个思路就是把字符串放进栈里面,判断栈的内容是否相当,直到不同的时候截止。大神思路:这里看到一个比较巧妙的方法,利用了字符串对象的函数,直接简单解出了这道题,果然还是对这些函数不熟悉,需要补一补。public static String longest
2021-04-02 10:26:52
85
原创 线性表篇:动态数组
一 动态数组的性质Java动态数组是一种可以任意改变数组长度的对象,原来的数组是大小固定的,不具备灵活性,因此当数据超出容量的时候需要扩容数组,来承载新的数据,动态数组就是一种比较简单的方法,其中在java接口中,ArrayList接口就是与之对应比较常用的一种。二 自己实现动态数组三 关于ArrayList的使用这是链接...
2021-04-01 19:32:45
153
原创 ArrayList的使用
一 ArrayListArrayList是List接口的主要实现类之一二 常用方法//和前面讲的Map一样,都是用了泛型声明的ArrayList<String> arrayList = new ArrayList<String>();arrayList.add(Object ele); //添加你指定的泛型类型arrayList.size();//返回元素个数arrayList.get(int index);//返回列表中指定位置的元素,index从0开始arrayL
2021-04-01 19:29:08
66
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人