自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 CVTE笔试(2020-26)

提前批开始了,目前已经完成了CVTE的笔试,做完笔试真的发现自己是真的菜,被虐成狗,趁着自己还有记忆赶紧来写一写面经,有20道选择题(几乎是不定选择题),2道算法题,一道场景题,一共23道题。场景题大概是这样的,让你完成一个类似于有道云笔记的同步问题。如何完成成多设备同步和离线同步,并且进行效率分析和改善。。。。。。。。。。。。。看到这个题哎呀不会呀==然后就随便答了一下本地缓存和云端缓存算法题第一题期末考试出成绩了,老师给班上的每一个同学颁小红花,每一个同学都至少有一朵小红花,两个相邻的

2020-12-27 09:51:27 2394

原创 LeetCode297-二叉树的序列化与反序列化

链接:https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/对于二叉树的问题来说,其实归根结底就是考遍历树的三种方式,就是在遍历之前加上条件,由于树有天然的递归性,递归可以解决很多关于树的问题,如果还想优化一点那就bfs吧,套上模板package algorithm.leetCode.tree;import java.util.LinkedList;import java.util.Queue;.

2020-10-26 20:21:52 126

原创 洛谷P1508(java版)

话不多说,传送门来了:https://www.luogu.com.cn/problem/P1508题目背景问世间,青春期为何物?答曰:“甲亢,甲亢,再甲亢;挨饿,挨饿,再挨饿!”题目描述正处在某一特定时期之中的李大水牛由于消化系统比较发达,最近一直处在饥饿的状态中。某日上课,正当他饿得头昏眼花之时,眼前突然闪现出了一个 n×m(n,m≤200)n \times m(n,m \le 200)n×m(n,m≤200) 的矩型的巨型大餐桌,而自己正处在这个大餐桌的一侧的中点下边。餐桌被划分为了 n.

2020-10-23 20:33:08 208

原创 深入理解HashMap

对于jdk1.7来说HashMap采取的是数组+链表的形式来进行储存的,但是为啥是采取数组+链表呢,我理解的原因是:对于key来说,我们首先要将key的ascii码进行hash,获取到的值作为数组的下边进行储存,当然会存在哈希值一样的(因为数组会被直接盖住),这个时候就会进行链表的头插法,数组的长度初始值为16每次扩容1.5。对于jdk1.8数组+链表+红黑树为什么有了红黑树还要连表?答案:为什么红黑树快:答案链表转化为红黑树为什么是8呢static final int TREEIFY

2020-10-23 19:59:21 340 1

原创 洛谷P1738 洛谷的文件夹(java)

这是一道 普及+/提高的题,说起洛谷的题对于java选手来说,真的是太不友好,做不来只能去看c/c++的题解。。。。。。一言难尽,为了做一道题真的太难了传送门:https://www.luogu.com.cn/problem/P1738直接上代码:package algorithm.luogu;import java.util.*;/** * @author 小黎 * @date 2020/10/21 18:39 * @description emmm这道题给我的第一眼.

2020-10-22 15:56:43 200

原创 LeetCode739

传送门:https://leetcode-cn.com/problems/daily-temperatures/这道题的话,首先想到的就是暴力解法,暴力出来还能过,不过效率是十分的低下的,先来看看暴力的代码,执行效果就像下面的一样执行结果:通过显示详情执行用时:1316 ms, 在所有 Java 提交中击败了5.01% 的用户内存消耗:46.1 MB, 在所有 Java 提交中击败了75.40% 的用户class Solution { public int[] dailyTemp.

2020-10-20 18:41:32 98

原创 洛谷P1091合唱队形

传送门:https://www.luogu.com.cn/problem/P1091这道题的话主要是一道求最长子序列的问题,但是是从正序和倒序开始求的,对于正序列的最长子序列可以看看LeetCode上的300号问题。求最长子序列当然是用dp呢具体的看下面的代码:import java.util.Arrays;import java.util.Scanner;/** * @author 小黎 * @date 2020/10/19 16:58 * @description 对于这道义来说的.

2020-10-20 18:34:54 119

原创 采坑日记之springboot+微信登录

对于这一块来说,简直是采坑了许多,最狗的就是获取不了微信小程序的token,然后告诉你40029错误,说你的code码无效,哎也是自己太菜了的原因。首先在yml文件里配置你的相关信息:wx: appid: appsecret: code2session: https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&js_code={2}&grant_type=authorization_cod

2020-10-11 16:15:31 149

原创 Springboot+Maven+easyExcel解析Excel文件

对于阿里巴巴的这个包,由于没有用过其他的解析文件的包,也是最近在写解析Excel表的才学的觉得还是方便的,我做的最主要的导入Excel表。我们来看一看这个包,这个包是阿里巴巴下的 <!-- easyExcel --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifact

2020-10-09 16:55:29 970

原创 洛谷P1167

传送门https://www.luogu.com.cn/problem/P1167对于这道题来说思路还是挺好想的,主要是要先知道时间戳这个概念。然后再就是由于字符串的输入是不符合"yyyy-MM-dd HH:mm:ss"这个模板的,题目的输入要求是2007-06-23-12:00这样输出的,所以就先要对输入的字符串进行一个处理,主要是SimpleDateFormat sdf = new SimpleDateFormat( “yyyy-MM-dd HH:mm” )这样转化为时间。然后获取时间戳主要是

2020-09-28 15:07:31 233

原创 LeetCode15-三数之和(java)

传送门:https://leetcode-cn.com/problems/3sum/总结对于这道题呢,要想就解决数字是可以的但是如何去重是一个值得思考的地方,我做了好久好久最后就超时了,看了一下我主要是调用了list.contains()方法让复杂度又提升了一个阶段,所以提交的时候,最后三个很大的测试用例通不过,然后就超时了,看到自己无法优化,就去借鉴了官方的答题思路,发现在去重的很巧妙。主要思路:主要还是去重的思路很重要主要是判断指针后的一个数是否和指针指向的数是否相等,然后跳过这个数

2020-09-22 08:47:56 112

原创 LeetCode3— 无重复字符的最长子串

传送门https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/submissions/对于这道题来说呢,我觉得用的方法是滑动窗口,首先给我的感觉有字母,我就觉得利用用ASCII码来表示字母的位置然后来找到最长的子串。public class LeetCode3 { //滑动窗口的思想 public static int lengthOfLongestSubstring(Strin

2020-09-20 12:15:05 96

原创 LeetCode16-最接近的三数之和

执行用时:6 ms, 在所有 Java 提交中击败了85.77% 的用户内存消耗:38.4 MB, 在所有 Java 提交中击败了78.77% 的用户传送门:https://leetcode-cn.com/problems/3sum-closest/submissions/这道题来说,也是一道指针对撞的题目,不同的是在一个循环内开始的,因为题目要求的是求3个数之和,但是我们的指针只有两个,于是便采取在外层加一个循环的方式来进行3数之和。public class LeetCode16 {

2020-09-18 15:25:16 87

原创 LeetCode11- 盛最多水的容器

我觉得这道题可以用对撞指针的思想来完成执行用时:4 ms, 在所有 Java 提交中击败了67.70% 的用户内存消耗:39.5 MB, 在所有 Java 提交中击败了7.80% 的用户传送门https://leetcode-cn.com/problems/container-with-most-water/这道题呢,我的主要思路是这样的,对撞指针嘛,我们肯定要先定义两个变量left和right来指向数组的开始与结尾,然后在定义一常量res来表示存储水的面积,然后左指针与右指针开始碰撞,想取r

2020-09-17 17:26:26 88

原创 LeetCode1- 两数之和

传送门:LeetCode1- 两数之和](https://leetcode-cn.com/problems/two-sum/)这道题算是我开始写算法的第一道题:执行用时:2 ms, 在所有 Java 提交中击败了99.62% 的用户内存消耗:39.2 MB, 在所有 Java 提交中击败了23.03% 的用户public class LeetCode1 { public static int[] twoSum(int[] nums, int target) { //开辟一个m

2020-09-17 16:52:45 92

原创 IO流

分隔符:在window系统中分隔符是“ c:\ ”我们在java可以用“ c:\com ”来表示或者“ c:/com ”来表示IO流,位于java.IO包中。File类:一个File类的对象,表示磁盘上的文件或目录。File类提供类了与平台无关的方法来对磁盘上的文件目录进行操作。File类直接处理文件和文件系统。File类没有指定信息怎样从文件读取或想文件存储。File类的构造方法:...

2020-07-18 18:52:47 92

原创 链表(java版)

链表链表是一种真正的动态数据结构,不需要处理固定容量的问题,但是丧失了随机访问的能力,是最简单的动态数据结构,链表是一种递归的数据结构,我们可以通过链表来了解递归。我们一般把数据储存在节点(Node)中,在java中,我们一般会用一个内部类来表示节点。class Node{ public E e; public Node next; }对于链表来说,我们对其进行一般的操作,具体代码如下:/** *一般链表头为head,在这里我们用的是虚拟头结点(dummyhead) * 链表的

2020-07-13 22:52:45 124

原创 递归

递归(Recursion):自己调用自己。对于递归来说必须有一个出口,让递归结束,这样才能避免死循环public class test { //求解n的阶乘 public int compute(int number){ if (1==number){ return 1; } else { ...

2020-07-13 16:03:48 82

原创 数据结构之队列(数组队列,循环队列 java实现)

对于队列来说我们可以基于数组和队列写一个,这里我会介绍队列的一些特性,并且通过循环队列来进行对空间复杂度的优化,最后我们可以通过两种队列的不同效率可以明显的看出。public interface Queue<E> { int getSize(); boolean isEmpty(); void enqueue(E e); void dequeue(); E getFront();}/** * 对于队列来说我们一般5个方法,队列是一个先入先出(FI

2020-07-02 22:58:21 111

原创 线程

多线程(Multi—Thread)线程与进程的区别:多个线程的内部数据和状态都是完全独立的,而多线程是共享一块内存空间和一组系统资源,有可能相互影响。线程本身的数据只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。多线程是指在单个程序中可以同时运行多个不同的线程执行不同的任务。线程是程序类的顺序控制流,只能使用分配给程序的资源和环境。多线程编程的目的,就...

2020-07-01 22:14:03 89

原创 网络编程

两种传输协议:TCP,UDP。JDK中的网络类:通过java.net包中的类,可以使用TCP,UDP协议来在互联网上通信。URL包括两个主要部分:协议标识符:—HTTP,FTP,File等。—资源名字:主机名,文件名,端口号,引用。public class UrlTest { public static void main(String[] args) throws Exceptio...

2020-07-01 22:13:12 72

原创 泛型

泛型:类别定义的逻辑完全一样,只是里面的成员变量的类型不同。如果需要多个相似的类,需要定义多个文件,不同的只是变量的类别,而逻辑完全一样。public class Generic<E> { private E foo; public E getFoo(){ return foo; } public void setFoo(E foo)...

2020-07-01 22:08:45 92

原创 java基础之多态

多态是java三大特征之一

2020-07-01 22:06:49 76

原创 java基础之static与final关键词

final关键词的使用方法:对于发哪里类型的成员变量,一般来说有两种赋初始值方法:在声明final类型的成员变量是就赋初值。在声明final类型的成员变量是不赋初值,但在类中所有的构造方法都为其赋上初值。staic代码块:静态代码块的作用也是完成一些初始化工作。首先执行静态代码快,然后执行构造方法,静态代码块在类被加载的时候执行,而构造方法方法是在生成对象的时候执行;要想调用每一个类来生成对象,...

2020-07-01 22:06:16 89

原创 参数

参数(parpamter):参数分为形式参数和实际参数,打一个比方在高中的函数中F(x,y)=x^2+2y-3,将x=3,y=7代入函数,得到33+27-3=20,这里分F(x,y)就是形式参数,3与7就是实际参数。参数是自变量。而F(x,y)函数,既代码中的方法是因变量,是一个逻辑执行的结果。形参是在方法定义阶段,实参是在方法调用阶段,我们举一个列子来看看参数的传递public class ...

2020-04-13 11:02:04 4487

原创 字符串

对于String对象的相等的判断,用equals()方法,而不要使用==。String是常量,其对象一旦创建完毕就无法改变。当使用+拼接字符串时,会生成新的String对象,而不是向原有的String对象追加内容。String Pool(字符串池)String s=“aaa”;查找String Pool中是否存在"aaa"这个对象,如果不存在,如果不存在,就会在String Pool创建一...

2020-04-13 11:00:42 546

原创 小学spring

* 1. 配置阶段* a. 配置web.xml ————> DispatcherServlet* b. 设定init-param ————> contextConfigLocation = classpath:application.xml* c. 设定url-pattern ————> /* or /* d. 配置A...

2020-04-07 10:51:39 117

原创 遍历HashMap的五种方法

作为小白的我,突然在一个公众号里面看见了遍历HashMap的方法,居然一口气写出来五种,嘿嘿,只能把这个干货写入我的随笔中了,哈哈哈。1、使用Ieterator遍历HashMap EntrySetpublic class IterateHashMapTest { public static void main(String[] args) { Map<Intege...

2020-04-01 20:34:28 373

原创 方法

构造方法(Constructor)构造方法是方法名与类名的特殊方法,在新建对象时调用,可以通过不同的构造方法实现不同方式的初始化,它有如下特征:(1)构造方法名称必须与类名相同。(2)构造方法没有返回类型,void也不行。它返回对象的地址,并赋值给变量。(3)构造方法不能够被继承,不能够被覆写,不能被直接调用。调用的途径有三种:①通过new关键字,②是在子类的构造方法中通过super调用...

2020-03-27 10:39:36 95

原创 Mac 发版项目

记录下Mac在发版项目时候第一次所遇到的问题Mac 本身是可以连接远程服务器的不用下其他的辅助软件第一步打开终端,页面如下第二步获得root权限操作指令如下: sudo -i连接远程服务器操作指令如下: ssh root@ip(这里面的ip指的是我们远程服务器的地址,eg:112.74.21.49 )将文件从本地传输到远程服务器操作如下图:连接之后页面如下之后我们需要做的操...

2020-03-21 23:03:56 136

原创 反射

在java运行环境中,对任意一个类能否知道这个类有哪一些方法?对于任意一个对象,能否调用他的任意一个方法?答案是肯定的。这种动态获取类信息以及动态调用对象的方法的功能来自java的反射机制。java反射机制主要提供一下功能1、在运行时判断任意一个对象所属的类。2、在运行时构造任意一个类的对象。3、在运行时判断任意一个类所具有的成员变量和方法。4、在运行时调用任意一个对象的方法。Refl...

2020-02-20 09:42:30 79

原创 java基础知识之参数传递以及构造方法

对于java中的方法参数传递,无论是原生数据类型还是引用数据类型,统一是传值(pass by value)。什么类型的引用就能指向什么类型的对象,比如People类型的引用就能指向People类型的对象,但不能指向Student类型的对象。构造方法(Constructor):构造方法用于完成对象属性的初始化工作,构造方法的特点:(1)构造方法的名字必须与类名一致(包括大小写)。(2)构造方...

2019-10-11 21:24:25 1035

原创 java基础知识之面向对象

java是一门面向对象的语言,我们可以用来面向对象编程(Object Oriented Programming,OOP;Object Oriented Design,OOD)那么什么是面向对象?在面向对象中有两个重要概念:类(class)与对象(object)。类:类是一种抽象概念,类中包含了数据与对数据的操纵。对象:对象是一种具体的概念,是类的一种表达方式。类所包含的内容,类一共有两部分...

2019-10-09 20:16:02 128

原创 java基础知识之运算符

1、当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型。比如有 int,有 double ,有 short,那么最后的结果类型就是double。2、int a=1; int b=2; double c=(double)a/b;上面代码块中a与b都是整数型,但是通过(double)a这种转化将a转换为一个匿名的变量,该变量的类型是double,但是要注意a本身是int类...

2019-10-03 11:38:06 84

原创 java基础知识之八大数据类型及其知识

在java中可以分为两大类:(1)原生数据类型(Primitive Data Type)(2)引用类型(对象数据)(Reference Type)变量与常量:常量就是不会变化的量,变量则是值可以变化的量。如何定义变量?变量类型 变量名;如何为变量赋值?变量名=变量值;a=2;“=”相当于赋值,将等式右边的值付给了左边的变量。变量名:在Java中,变量名以下划线,字母(不能使用数字开头...

2019-09-29 16:14:22 102

原创 数据结构之栈(java版)

栈和队列是两种不同的底层数据结构,两种数据结构都是线性结构但是却有本质本质上的区别。栈是一种先进后出的储存模式,比如:数据的入栈顺序是A、B、C、D、E、F,但是它的出栈顺序为F、E、D、C、B、A。而在队列中,数据的入栈顺序为A、B、C、D、E、F并且它的出队顺序也为A、B、C、D、E、F那么,我们也可以根据栈与队列的性质在动态数组的基础上做一个CURD。对于栈来说,我们通常定义push为入栈...

2019-09-17 20:55:39 99

原创 java8之深入了解函数式接口和方法引用

函数式接口是java8中的一大特性,Lambda表达式只针对于函数式接口。函数式接口只有一个自身的方法,但是他也可以用object类的方法,从而有两个方法。比如public interface MyInterface { void test(); String toString();}class Test2{ public void myTest(MyInterfac...

2019-09-17 20:06:27 191

原创 数据结构之数组(java版)

数组是一种比较简单的数据结构,但是无论你是使用哪一种语言,都会使用数组。数组,顾名思义,把数据码成一排进行存放| | | | | | | | |上面有八个连续的空间分别代表数组的八个元素,而在数组中比较重要的一点就是数组的索引,数组的索引(index)是从0开始记录的,索引为0的元素是第一个元素,以此类推。而我们需要做的是做一个简单的CURD。...

2019-09-13 15:44:39 136

原创 初步了解Lambda表达式与函数接口

Lambda表达式是java8的一个新特性,在之前的java中我们无法将函数作为参数传递给方法,,也无法声明一个返回函数的方法。在java的GUI之中就有许多的匿名内部类的表达式:`而在java8中我们可以这样写:我们可以在箭头的后面加一对花括号,在花括号里添加我们所需要的内容:为了更加了解函数性接口,我在下面举一个List列子方便我们去理解:mNzZG4ubmV0L3FxXzQ...

2019-09-11 15:19:31 139

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除