自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 问答 (1)
  • 收藏
  • 关注

原创 数组去重的算法题

关于数组去重的算法题

2022-06-20 08:13:46 199 1

原创 认识单调栈结构

认识单调栈结构

2022-06-19 10:36:34 121

原创 括号相关的问题

和括号匹配相关的算法问题

2022-06-17 16:53:29 169

原创 链表操作的递归思维

反转单链表

2022-06-17 14:48:41 263

原创 滑动窗口算法

双指针高级技巧——滑动窗口

2022-06-16 09:38:39 166

原创 左右指针的常用算法

左右指针的使用方法以及练习题

2022-06-15 09:22:57 271

原创 指针的运用——快慢指针

学习快慢指针的运用

2022-06-13 20:21:42 2635 1

原创 单链表中倒数第K个结点

使用一次遍历求单链表中倒数第K个结点

2022-06-13 17:06:30 130

原创 数组中的前缀和

前缀和指一个数组的某下标之前的所有元素的和(包含其本身)。前缀和分为一维前缀和,以及二维前缀和。前缀和是一种重要的预处理方式,能够降低算法的时间复杂度。看完这道题,我们可能首先想到的是遍历数组。题目要求我们实现这样一个类sumRange函数返回一个索引区间的和这样写可以到到效果,但是效率会很差,因为sumRange方法会被频繁调用,而他的复杂度是O(N),其中N代表nums数组的长度。这道题的最优解法是使用前缀和技巧,将sumRange函数的时间复杂度将为O(1),就是不要在函数中使用for循环。如

2022-06-12 10:58:44 1106 1

原创 关于react-router: export ‘Switch‘ (imported as ‘Switch‘) was not found in ‘react-router‘报错

import React, { memo } from 'react'import { renderRoutes } from "react-router-config";import router from "./router"import YYAppHeader from "@/components/app-header";import YYAppFooter from "@/components/app-footer";const App = memo(() => {

2022-05-07 08:14:41 682

原创 setState

一、setState在哪?setState存在于父组件Component上,每个自定义的组件继承之后都能调用。二、为什么要使用setState我们无法手动调用render,当我们使用setState时,react会自动帮我们调用rendersetSate一定是异步的吗?情况一:异步(在组件生命周期或React合成事件中)setSate设计成异步,可以显著的提升性能:(1)如果每次调用setState都进行一次更新,那就意味着render函数会被频繁调用,界面会被重新渲染,这样的效率是很低的

2022-04-28 08:39:47 154

原创 React-Redux

相信大家之前都接触过redux,react官方为使开发者能更好的使用redux的功能,便自己提供了一个react专属的redux——react-reduxreact-redux模型图所有的UI组件都需要包裹在一个容器中,它们是父子关系。容器组件是真正能和redux打交道的,里面可以随便的使用redux的apiUI组件中不能使用任何的redux的api容器组件会传给UI组件:(1)redux中所保存的状态。(2)用于操作状态的方法。备注:容器给UI传递:状态、操作状态的方法,都通过propo.

2022-04-03 15:19:57 1031

原创 浅说Redux

我们在使用react的时候,通常使用state来做状态管理,除了state之外,我们还可以使用redux来做状态管理。redux是第三方出的一个库,与react没有任何关系,就像Java与JavaScript。先让我们来看一张图:1、原理我们先不讨论react是怎么和redux链接的,先看下他们之间是怎样工作的。首先,当我们在react中的Components中调用方法改变状态时,我们将这次的行为用一个对象封装起来,我们称为它为一个action,它由两个key:value组成,也就是两个属性.

2022-04-02 11:16:04 774

原创 浅说dva

什么是dvadva 首先是一个基于 redux 和 redux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了react-router 和 fetch,所以也可以理解为一个轻量级的应用框架。 ——(来自官网的介绍)快速上手通过 npm 安装 dva-cli 并确保版本是 0.9.1 或以上。$ npm install dva-cli -g$ dva -vdva-cli version 0.9.1创建新应用$ dva new dva-quickstart然后我们

2022-03-28 14:03:08 552

原创 浅说MVVM模型

MVVM是由哪几部分组成的?M:modelV:视图VM:Vue容器MVVM分别代表什么?M即model,即为存储的数据,在vue中,我们可以将data认为是这里所说的M。V:试图,用于展示的部分,我们可以将写的html代码那一部分认为是V。VM:即Vue容器,new Vue() 这一部分即可以认为是VM,用来连接model和视图。三者之间的关系VM作为Vue容器,负责作为中间管理者连接model和视图,model为视图提供数据,视图负责展示。图示...

2022-03-24 09:15:59 484

原创 关于输入流和输出流的坑

关于输入流和输出流的坑当使用输入流和输出流时,输入流需要在输出流的前面调用,不然会报错。

2021-11-09 17:36:40 116 1

原创 递归的应用

递归的应用递归需要遵守的规则:执行一个方法时,就创建一个新的受保护的独立空间(栈空间)方法的局部变量是独立的,不会相互影响。如果方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据递归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverflowError。当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁,同时当方法执行完毕或者返回时,该方法也就执行完毕。迷宫问题一、题目简介:假设有一个如图所示的迷宫,红色的代表墙,现在假设需

2021-07-21 11:18:19 174

原创 中缀表达式转为前缀和后缀表达式

中缀表达式转为前缀和后缀表达式逆波兰表达式(后缀表达式)在计算机进行计算时,我们一般将其转换为后缀表达式来进行计算。那么,我们如何将中缀表达式转为后缀表达式呢?假设我们有一个中缀表达式为:5×(6+3)÷3-1转换规则:从左往右,遇到数字,则直接写出来,如果是左括号(只有遇到右括号才会弹出),则一定压入符号栈中,如果是符号,则需要比较优先级。如果新的符号的优先级小于或者等于栈顶的符号,那么则将栈中的所有符号给弹出。如果优先级大于栈顶,则直接加入到符号栈中。如果遇到了右括号,则要把左括号以上的

2021-07-20 16:15:50 179

原创 单向环形链表

单向环形链表一、介绍:顾名思义,即单链表形成环状。二、单向环形链表的实现比起单链表,单向环形链表则多了一个由最后一个结点指向第一个结点的地址。如果只有一个结点,则自身形成环。三、利用单向环形链表解决约瑟夫问题题目:现在有n个孩子围着一圈,从第startNo个孩子开始,从自己开始计数,每次数countNum个,数到的那个孩子出去,直到剩下最后一个。代码实现public class BoyNode { private int no; private BoyNode

2021-07-19 15:05:55 187

原创 双向链表学习

双向链表一、单链表与双链表:单链表,查找的方向只能是一个方向,而双链表可以前或后查找。单链表不能自我删除,需要辅助结点,而双向链表则可以实现自我删除。所以前面我们删除单链表的结点时,会找一个辅助结点temp,temp是删除的结点的前一个结点。二、双向链表图解说明:双向链表比起单链表来说,多了一个指向前一个结点的地址的pre。三、代码public class Node { private int no; private String name; private

2021-07-19 14:45:01 63

原创 关于单链表的应用问题

关于单链表的应用问题一、求单链表中有效结点的个数//查询单链表中有效的结点个数 public static int getNodeNumer(Node head) { if (head.getNext() == null) { return 0; } Node temp = head.getNext(); int length = 0; while (true) { i

2021-07-18 19:59:38 81

原创 链表的学习

链表一、链表介绍:链表是有序的列表,是以结点的形式来存储的。每个结点包含data域与next域,data域用来存储该结点的数据,而next域则用来指向下一个结点。链表的各个结点不一定是连续存储的,各个结点之间靠next指向地址来连接各个结点。链表分带头结点和不带头结点的链表,是否带头结点根据实际需求来确定。二、单链表的创建单链表的创建对于head头结点,data中不存放数据,用来表示单链表表头。添加(创建):先创建一个头结点,后面每添加一个结点,直接添加到尾部。现在,我

2021-07-15 20:37:01 163 2

原创 队列的学习

队列简介一、概念:1、队列是一个有序列表,可以用数组和链表来实现。2、遵循先进先出的原则。二、数组队列:设计:front指向队列第一个元素的前一个位置。初始值为-1。rear指向队列的最后一个元素的位置。初始值为-1。队列满时,rear==maxSize-1(maxSize为初始化数组的大小)队列空时,front==rear缺点:只能使用一次,没有达到复用的效果。代码:public class ArrQueue { private int maxSize;

2021-07-09 19:59:25 117

原创 关于稀疏数组

稀疏数组1、什么是稀疏数组?稀疏数组是一种二维数组,用来对普通的二维数组进行压缩,将普通的二维数组中的有效值给提取出来放入其中。(假设有效值个数为sum)格式为:row col val即一个稀疏数组paseArr定义为paseArr[sum+1][2]2、如何将一个普通的二维数组转为稀疏数组呢?计算出普通二位数组中有多少个有效值(非0值)。将每一个有效值存入稀疏数组中,稀疏数组的第一列存储有效值所在的行,第二列存储有效值所在的列,第三列存储有效值的值。3、如何将稀疏数组恢

2021-07-09 09:10:48 47

原创 利用动态代理给方法增加功能

利用动态代理给方法增加功能动态代理:可以在程序执行的过程中,创建代理对象。通过代理对象执行方法,给目标类的方法增加额外的功能(功能增强)。动态代理实现代码的解耦合。jdk动态代理实现步骤:1、创建目标类,SomeServiceImpl目标类,给它的doSome,doOther方法增加输出时间,事务的功能。2、创建InvocationHandler接口的实现类,在这个类实现给目标方法增加功能。3、使用jdk中 类Proxy,创建代理对象,实现创建对象的能力。...

2021-06-08 09:37:13 204 1

原创 Spring注解

Spring注解1、@component:用于创建Javabean对象,功能等同于bean标签,该注解的value值为bean标签中的id。放在类的上面。如果不自定义value的值,那么容器会自适应为该类名的小写。2、@value:用于给类的简单类型属性赋值,等同于set方法,是String类型。3、@Autowired:引用类型属性注入@Autowired中有一个required属性,默认为true,如果没有找到需要引用的类,则会报错,如果设置为false,则不会报错,但是输出为nul

2021-06-06 23:18:48 34

原创 2021-06-05

什么是IOCioc又称为控制反转,是spring中用来管理Java对象的一种机制,将对象的创建、赋值、管理等工作交给容器来实现。那么什么又是控制反转呢?控制:对象的创建、赋值、对象之间的关系。反转:将之前由程序员自己创建、管理对象的操作交给容器自己,有、由容器来实现这一系列操作。正转:由程序员自己管理对象的创建与赋值,如自己new一个对象,并进行赋值操作。IOC的作用:用来减少代码的使用,来达到更多的功能实现,即实现解耦合。在这里,我们再来理解下容器能创建对象,在我们学习Servlet的时候

2021-06-05 16:19:35 55

原创 异步方法中数据的获取

异步方法中数据的获取通过回调函数获取运行结果:2、通过Promise运行结果:3、通过rxjs运行结果:

2021-04-16 14:18:37 114

原创 Angular父子组件互相传值

Angular父组件传值到子组件我们在这里定义了一个home组件作为父组件,header为子组件1、首先,我们需要在app.component.html中引入home组件2、其次,我们在home中写一个要传到子组件的属性3、在home组件中引入header组件,并给其属性绑定。4、在header组件中打印结果如下:...

2021-04-16 14:16:52 1890

原创 Javaweb之Servlet详解

Javaweb之Servlet详解初识ServletServlet是一个接口,Servlet由web服务器(如tomcat)调用,web服务器在收到浏览器的请求后,会判断Servlet是否存在,若不存在,则装载创建Servlet的实例并初始化(若存在则跳过这步骤),然后调用service方法。任何一个用户自定义的Servlet,只需要继承并重写doGet或doPost即可。servlet在容器中的执行过程1. 浏览器向服务器发起GET或POST请求2. 服务器解析请求,判断是否为S

2021-04-02 13:21:55 1154

原创 Vue+Springboot的demo

Vue+SpringbootVue+Springboot前后端分离的一个功能简单的demo链接:https://pan.baidu.com/s/1DRCqwMXSO8_556v0NO7qlw提取码:0nyx

2021-03-16 17:55:00 141 1

原创 java类型信息与反射

java类型信息与反射类信息的存储java代码在经过编译之后会生成.class文件(二进制字节码),而class文件则主要由 Magic(魔数,分辨是否为Java文件)、Monitor(主次版本号)、Constantpoll(常量池)、interface(包含由该类实现的接口的常量的引用)、Field(字段数量和字段信息表)、Method、Attribute(属性总数和属性本身)组成。类型信息的加载Java提供预先加载和按需加载两种方式,Bootstrap Loader->ExtClass L

2021-03-15 14:41:34 66 1

空空如也

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

TA关注的人

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