自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

m0_53708566的博客

记录学习笔记

  • 博客(53)
  • 问答 (2)
  • 收藏
  • 关注

原创 Acwing - 131. 直方图中最大的矩形

131. 直方图中最大的矩形 - AcWing题库题目描述tag : 单调栈直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图例左侧显示了由高度为 2,1,4,5,1,3,3 的矩形组成的直方图,矩形的宽度都为 1:输入格式输入包含几个测试用例。每个测试用例占据一行,用以描述一个直方图,并以整数 n 开始,表示组成直方图的矩形数目。然后跟随 n 个整数 h1,…,hnh_1,…,h_nh1​,…,hn​。这些数字以从左到右的顺.

2021-10-01 19:28:49 198

原创 1 - 选择排序与冒泡排序

排序算法选择排序/** * 选择排序的思路 : * 依次遍历数组,每次遍历数组的时候,记录当前未排序的最小值的索引 * 让最小值的索引和待排序的数组的第一个元素进行交换,然后继续重复操作 * 直到所有元素都排序 */public class SelectionSort { public static void selectionSort(int[] arr) { // 数组为空或已有序,直接返回 if (arr == null || arr.length < 2)

2021-07-19 20:35:48 116

原创 MyBatis 学习笔记 - 2021-7-10 - 2021-7-13

1. MyBatis简介视频链接【狂神说Java】Mybatis最新完整教程IDEA版通俗易懂_哔哩哔哩_bilibili环境:JDK 1.8MySQL 5.7maven 3.6.1IDEA什么是 MyBatis ?MyBatis 是一款优秀的持久层框架。它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Pl

2021-07-13 13:42:13 203

原创 14 - Spring5 学习笔记 - 整合日志框架、@Nullable 注解

Spirng5 框架新功能1、整个 Spring5 框架基于 Java8,运行时兼容 JDK9,许多不建议使用的类和方法在代码库中删除。2、Spring5 框架自带了通用的日志封装。(1)Spring5 已经移除了 Log4jConfigListener,官方建议使用 Log4j2(2)Spring5 框架整合 Log4j2第一步 引入相关 jar 包第二步 创建 Log4j2.xml 配置文件<?xml version="1.0" encoding="UTF-8"?><

2021-06-23 19:37:09 159 1

原创 (爬虫)震惊!游戏卡牌尽拍出8700w,手把手教你爬取游戏王卡牌的竞买记录!

就在 6.21 号晚上六点,有一张被执行人的卡牌被拍卖,因为媒体的宣传,导致有很多不懂法的人来恶意竞拍,最后以 8700w 的价格被法院叫停。 — 拍卖链接那么我们可以使用一下我们的技术,看看是不是绝大多数的人都是为了看热闹而参加了这次“游戏”,现在我们来学习怎么使用 Python 的 requests 模块将这些竞买记录爬取下来。开始我们都知道,网页等其他数据,都是从服务器那边请求过来的,那么我们可以让一个程序代替我们去请求这些数据,并且保存下来。requests 模块Python 的 re

2021-06-23 10:47:51 416

原创 13 - Spring5 学习笔记 - 事务操作

事务操作事务概念1、什么是事务?(1)事务是数据库操作最基本单元,逻辑上的一组操作,要么都成功,如果有一个失败就都失败。比如:转账就要用到事务,保证数据的一致性。2、事务的四个特性(ACID)(1)原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。(2)一致性(Consistency)事务必须使数据库从一个一致性状态变换到另一个一致性状态。比如:转账前后钱的总数不发生改变。(3)隔离性(Isolation)事务的隔离性是多个用户并发

2021-06-22 13:32:52 122

原创 12 - Spring5 学习笔记 - JdbcTemplate 查询返回对象或集合、批量修改或删除

查询返回对象1、JdbcTemplate 实现查询返回对象queryForObject(String sql, RowMapper<T> rowMapper, Object… args)第一个参数:sql 语句第二个参数:RowMapper,是接口,返回不同类型数据,使用这个接口里面实现类完成数据封装第三个参数:sql 语句值我们使用这个方法完成对数据库的查询。(1)在 dao 接口中创建查询方法// BookDao.java Book findBookInfo(Stri

2021-06-21 20:24:30 1003

原创 11 - Spring5 学习笔记 - JdbcTemplate 概述、准备工作、操作数据库实现添加

JdbcTemplate 概述1、什么是 JdbcTemplate(1)Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便地实现对数据库操作。2、准备工作(1)增加相关 jar 包mysql-connector-java-5.1.7-bin.jar — mysql-jdbcspring-jdbc-5.2.6.RELEASE.jar — jdbcspring-tx-5.2.6.RELEASE.jar — 事务(2)数据库连接池配置(使用 durid)我们先创建

2021-06-21 15:36:04 108

原创 10 - Spring5 学习笔记 - AOP 操作(AspectJ 注解、AspectJ 配置文件)

AOP 操作(准备)1、Spring 框架一般都是基于 AspectJ 实现 AOP 操作(1)什么是 AspectJAspectJ 不是 Spring 组成部分,是独立的 AOP 框架,一般把 AspectJ 和 Spring 框架一起使用,进行 AOP 操作。2、基于 AspectJ 实现 AOP 操作(1)基于 xml 配置文件(2)基于注解方式实现(常用)3、在项目工程引入 AOP 相关依赖4、切入点表达式(1)切入点表达式作用:直到对哪个类里面的哪个方法进行增强。(2)

2021-06-21 13:08:29 177 1

原创 9 - Spring5 学习笔记 - JDK 动态代理、AOP 操作术语

JDK 动态代理1、使用 JDK 动态地阿里,使用 Proxy 类里面的方法创建代理对象(1)调用 newProxyInstance 方法static Object newProxyInstance(ClassLoader loader, 类<?>[] interfaces, InvocationHandler h)返回指定接口的代理类的实例,该接口将方法调用分派给指定的调用处理程序方法有三个参数:第一个参数:类加载器第二个参数:增强方法所在的类,这个类实现的接口,支持多个接口

2021-06-21 11:55:40 157

原创 8 - Spring5 学习笔记 - AOP 概念,底层原理

AOP(概念)1、什么是 AOP百度百科AOP(1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发效率。(2)通俗描述:不通过修改源代码的方式,在主干功能里面添加新功能。(3)使用一个登录例子说明 *AOP2、AOP 底层原理1、AOP 底层使用动态代理。(1)有两种情况的动态代理。第一种:有接口情况,使用 JDK 动态代理。在这里插入图片描述第二种:没有接口情况,使用 CGLIB 动

2021-06-21 11:05:07 101

原创 7 - Spring5 学习笔记 - IOC 操作 Bean 管理(基于注解方式)、注解方式实现属性注入、完全注解开发

IOC 操作 Bean 管理(基于注解方式)注解方式创建对象1、什么是注解(1)注解是代码里特殊的标记。格式:@注解名称{属性名称 = 属性值, 属性名称 = 属性值 ...}(2)注解可以使用在类上面,方法上面,属性上面(3)使用注解的目的:简化 xml 配置。2、Spring 针对 Bean 管理中创建对象提供的注解(1)@Component(2)@Service(3)@Controller(4)@Repository上面的四个注解功能是一样的,都可以用来创建 bean 实例中

2021-06-20 16:11:32 134

原创 6 - Spring5 学习笔记 - IOC 操作 Bean 管理 xml 自动装配、外部属性文件

IOC 操作 Bean 管理 xml 自动装配1、什么是自动装配(1)根据指定装配规则(属性名称或属性类型),Spring 自动将匹配的属性值进行注入。之前我们都是在 bean 标签中,通过设置 property 标签的 name 和 value 来进行属性的注入。(2)演示自动装配的过程普通方式a. 创建类public class Dept { private String deptName; public void setDeptName(String deptNam

2021-06-20 13:59:34 119

原创 5 - Spring 学习笔记 - IOC 操作 Bean 管理 FactoryBean、Bean 作用域、Bean 生命周期

IOC 操作 Bean 管理(FactoryBean)1、Spring 有两种类型的 bean ,一种普通 bean,另外一种工厂 bean(FactoryBean)。2、普通 bean:在配置文件中,定义bean 类型就是返回值类型class 定义的是什么类型,返回的就是什么类型。比如:<!-- 定义的是 Book 类型,返回的就是 Book 类型 --><bean id="book" class="com.tt.stu.collectiontype.Book">

2021-06-20 10:33:48 148

原创 4 - Spring 学习笔记 - Bean 管理 XML 方式(注入集合属性)

IOC 操作 Bean 管理(xml 注入集合属性)1、注入数组类型属性2、注入 List 集合类型属性3、注入 Map 集合类型属性(1)创建类,定义数组、list、map、set 类型属性,生成对应 set 方法。public class Student { // 1. 数组类型属性 private String[] courses; // 2. List 集合类型属性 private List<String> list; // 3. map

2021-06-19 21:39:04 138

原创 3 - String5 学习笔记 - Bean 管理 XML 方式

p名称空间注入( setter 方法注入属性的简化)(1) 使用 p 名称空间注入,可以简化基于 xml 配置方式第一步 添加 p 名称空间在配置文件中。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" &

2021-06-19 19:02:46 74

原创 2 - Spring5 学习笔记 - IOC容器,底层原理、IOC操作Bean管理

IOC 容器(1) IOC 底层原理。(2) IOC 接口(BeanFactory)。(3) IOC 操作 Bean 管理(基于 xml)。(4) IOC 操作 Bean 管理(基于注释)。什么是 IOC百度解释 – 链接(1) 控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理。(2) 使用 IOC 目的:为了耦合度降低。(3) 入门案例解释 IOC 的实现。IOC 底层原理(1) xml 解析、工厂模式(设计模式)、反射。IOC (接口)IOC 思想

2021-06-18 17:18:29 135

原创 1 - Spring5 学习笔记 - Spring 框架概述、基本使用

Spring 框架概述Spring 是轻量级的开源的 JavaEE 框架。Spring 可以解决企业应用开发的复杂性。Spirng 有两个核心部分:IOC 和 Aop(1) IOC :控制反转,把创建对象过程交给 Spring 进行管理。(2) Aop:面向切面,不修改源代码进行功能增强。Spring 特点(1) 方便解耦,简化开发(2) Aop 编程支持(3) 方便程序测试(4) 方便和其他框架进行整合(5) 方便进行事务操作(6) 降低 API 开发难度...

2021-06-18 11:47:33 95 1

原创 AcWing - 1015. 摘花生

Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty最多能够摘到多少颗花生。输入格式第一行是一个整数T,代表一共有多少组数据。接下来是T组数据。每组数据的第一行是两个整数,分别代表花生苗的行数R和列数 C。每组数据的接下来R行数据,从北

2021-06-16 19:53:39 84

原创 17 - Vue 学习笔记 - slot 插槽的基本使用、作用域插槽

slot 翻译为 插槽:在生活中很多地方都有插槽,电脑的 USB 插槽等等。插槽的目的是让我们原来的设备具备更多扩展性。比如电脑的 USB 我们可以插入 U盘、硬盘、手机、鼠标等等。组件的插槽组件的插槽是为了让我们封装的组件更加具有扩展性。让使用者可以决定组件内部的一些内容到底展示什么。我们举个例子:<template id="cpn"> <div> <h2>我是组件</h2> <p>我是组件,哈哈哈</p&gt.

2021-06-16 16:53:53 207

原创 16 - Vue 学习笔记 - 组件通信父子组件的访问方式

有时候我们需要父组件直接访问子组件,子组件直接访问父组件,或者是子组件访问根组件父组件访问子组件:使用 $children 或 $refs子组件访问父组件:使用 $parent父访问子$children 访问this.$children 是一个数组类型,它包含所有子组件对象。因为子组件不可能只有一个,所以获取的是一个数组类型。我们可以通过遍历,遍历每个子组件。<div id="app"> <!-- 创建3个组件 --> <cpn></cp.

2021-06-15 20:26:35 132

原创 15 - Vue 学习笔记 - 父子组件通信子传父(自定义事件)、子传父的小问题

子传父(自定义事件)有时候我们需要子组件传递给父组件一些信息,这个时候需要使用自定义事件来完成。自定义事件流程:在子组件中,通过 $emit() 来触发事件在父组件中,通过 v-on 来监听子组件事件 (v-on 不仅能监听 DOM 事件,还可以监听自定义事件)<!-- 父组件模板 --><div id="app"> <!-- 监听子组件的事件 --> <cpn @item-click="cpnClick"></cpn>&lt

2021-06-15 10:28:19 309

原创 14 - Vue 学习笔记 - 父子组件通信父传子

父子组件通信我们知道,子组件是不能引用父组件或者 Vue 实例的数据的。但是,在开发中,往往有一些数据需要从上层传递到下层:比如在一个页面中,我们从服务器请求到了很多数据。其中一部分数据,并非是整个页面的大组件来一并展示的,而是需要下面的子组件进行展示。这个时候,并不会让子组件再发送一次网络请求(子组件很多,如果每次都发送请求,对服务器压力很大),而是直接让大组件(父组件) 将数据传递给小组件(子组件)。所以我们需要使用到父子组件之间的通信。如何进行父子组件的通信呢?Vue 官方提到:通

2021-06-14 20:48:19 95

原创 13 - Vue 学习笔记 -注册组件语法糖、模板分离写法、组件访问数据

注册组件语法糖之前的注册组件的方式,可能有些繁琐。Vue 为了简化整个过程,提供了注册的语法糖。主要是省去了调用 Vue.extend() 的步骤,而是可以直接使用一个对象代替。<div id="app"> <cpn1></cpn1> <cpn2></cpn2></div><script src="../js/vue.js"></script><script> // 1. 全局组

2021-06-14 17:13:14 125

原创 12 - Vue 学习笔记 - 组件化开发、全局与局部组件、父组件和子组件

组件化开发什么是组件化?人们面对复杂问题的处理方式:任何一个人处理信息的逻辑能力都是有限的。所以,当面对一个非常复杂的问题时,我们不太可能一次性搞定一大堆的内容。但是,我们可以将问题进行拆解。如果将一个复杂的问题,拆分成多个可以处理的小问题,再将其放在整体当中,就可以把大的问题解决。组件化也是类似的思想:如果我们将一个页面的所有的处理逻辑全部放在一起,处理起来会变得非常复杂,而且不利于后期的维护管理与扩展。但是如果,我们将一个页面拆分成一个个小的功能可,每个功能块完成属于自己这部分

2021-06-14 13:35:34 288

原创 11 - Vue 学习笔记 - input 中的值绑定、v-model 修饰符

值绑定很多情况下,我们的数据并不是写死的,它有可能是从服务器获取,获取过来再动态生成这些数据。我们也可以借助一个 v-for 完成 input 的值绑定<div id="app"> <!-- 值绑定 --> <!-- :for 动态绑定 label 标签的 for 属性 --> <label v-for="hobby in originHobbies" :for="hobby"> <input type="checkbox" :val

2021-06-13 19:21:07 667

原创 10 - Vue 学习笔记 - v-model 的使用

v-model 的使用表单控件在实际开发中是非常常见的。特别是对于用户数据的提交,需要大量的表单Vue 中使用 v-model 指令来实现表单元素和数据的双向绑定

2021-06-13 18:15:11 265

原创 9 - Vue 学习笔记 - 登录切换小案例、v-show、v-for

登录切换小案例案例需求:一个登录的文本框,和一个按钮,按下按钮可以更改采用哪种方式登录<div id="app"> <span v-if="isUser"> <!-- label 的 for 的作用是,当点击 label 焦点会移至哪里 --> <label for="username">用户账号</label> <input type="text" id="username" placeholder="用户账号"&gt

2021-06-12 19:51:26 216

原创 8 - Vue 学习笔记 - v-on的使用、v-if、v-else-if、v-else

v-on在前端开发中,我们经常要和用户交互这个时候,就必须监听用户所做的事件,比如点击,拖拽,键盘事件等等在 Vue 中,我们使用 v-on 指令来监听事件v-on介绍作用:绑定事件监听器缩写:@预期:Function | Inline Statement | Object参数:event基本使用<div id="app"> <h2>{{counter}}</h2> <!-- 可以直接写表达式 --> <!-- <bu

2021-06-12 18:32:18 218

原创 7 - Vue学习笔记 -计算属性、ES6 语法补充

计算属性我们直到,在模板可以直接通过插值语法显示一些 data 里的数据但是在某些情况下,我们可能需要对数据先进行转换后再显示,或者需要多个数据结合起来进行显示比如我们有 firstName 和 lastName 两个变量,我们需要显示完整的名称但是如果多个地方都要显示完整的名称,使用以前的方法就需要写多个 {{firstName}} {{lastName}}为了方便阅读我们可以将上面的代码换成计算属性:计算属性是写在实例的 computed 选项中的 <div id="a

2021-06-11 22:01:27 136 2

原创 6 - Vue 学习笔记 - v-bind的基本使用

在某些情况下,除了内容需要动态来决定外,某些属性也希望动态绑定比如动态绑定 a 元素的 href 属性比如动态绑定 img 的src 属性这个时候,可以使用 v-bind 指令:v-bind作用:动态绑定属性缩写::预期:any (with argument) | Object (without argument)参数:attrOrProp (optional)基本使用<div id="app"> <!-- <img src="{{imgURL}}.

2021-06-10 15:49:18 214

原创 5 - Vue 学习笔记 - 其他指令的使用

其他指令的使用v-once在某些情况,我们可能不希望界面随意的跟随改变这个时候,可以使用一个 Vue 的指令v-once这个指令后面不许需要跟任何表达式这个指令表示元素和组件*(后续才会学习)*值渲染一次,不会随着数据的改变而改变<div id="app"> <h2>{{message}}</h2> <h2 v-once>{{message}}</h2></div>第一个 h2 由于设置了 v-o

2021-06-10 14:45:18 52

原创 4 - Vue 学习笔记 - options 选项、生命周期、WebStorm的vue模板、mustache语法简单补充

Vue 的 options 选项我们会发现,在创建 Vue 实例时,传入了一个对象 options我们可以从官网上看这个 options 中包含了哪些选项 — API—Vue.js目前掌握这些选项:el:类型:string | HTMLElement作用:决定之后 Vue 实例会管理哪一个 DOMdata:类型:Object | Function(组件当中 data 必须是一个函数)作用:Vue 实例对应的数据对象methods:类型:{ [key : string] : Fun

2021-06-10 13:45:22 180

原创 3 - Vue 学习笔记 - Vue 中的 MVVM

什么是 MVVM ?(来自百度) MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开… 百度百科 — wiki百科

2021-06-10 13:04:44 73

原创 2 - Vue 学习笔记 - Vue.js 体验

第一个 Vue 程序体验一下 Vue 的响应式<body> <div id="app"> {{message}} <h2>{{message}}</h2> <h1>{{name}}</h1> </div> <div>{{message}}</div> <script src="../js/vue.js"&gt

2021-06-10 12:43:25 54

原创 1 - Vue学习笔记 - Vue.js 的了解与安装

简单认识一下 Vue.js官方介绍  Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。官方网址渐进式框架渐进式意味着你可以将 Vue 作为你应用的一部分嵌入其中,带来更丰富的交互体验或者给你希望的业务逻辑使用 Vue 实

2021-06-10 09:57:39 83

原创 AcWing-482. 合唱队形

题目内容NNN 位同学站成一排,音乐老师要请其中的 (N−K)(N−K)(N−K) 位同学出列,使得剩下的 KKK 位同学排成合唱队形。合唱队形是指这样的一种队形:设 KKK 位同学从左到右依次编号为 1,2…,K1,2…,K1,2…,K,他们的身高分别为 T1,T2,…,TKT_{1},T_{2},…,T_{K}T1​,T2​,…,TK​,  则他们的身高满足 T1<…<Ti>Ti+1>…>TK(1≤i≤K)T_{1} <…<T_{i}>T_{i+1}&

2021-06-07 10:19:45 56

原创 AcWing-895. 最长上升子序列

题目内容给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数 N。第二行包含 N 个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤10001≤ N ≤10001≤N≤1000,−109≤数列中的数≤109−109 ≤ 数列中的数 ≤109−109≤数列中的数≤109输入样例:7 3 1 2 1 8 5 6 输出样例:4code#include<iostream>using namespace

2021-06-07 09:48:56 67

原创 AcWing-1353. 滑雪场设计

农夫约翰的农场上有N个山峰,每座山的高度都是整数。在冬天,约翰经常在这些山上举办滑雪训练营。不幸的是,从明年开始,国家将实行一个关于滑雪场的新税法。如果滑雪场的最高峰与最低峰的高度差大于17,国家就要收税。为了避免纳税,约翰决定对这些山峰的高度进行修整。已知,增加或减少一座山峰x单位的高度,需要花费x^2的金钱。约翰只愿意改变整数单位的高度,且每座山峰只能修改一次。请问,约翰最少需要花费多少钱,才能够使得最高峰与最低峰的高度差不大于17。输入格式第一行包含整数...

2021-06-06 11:06:05 58

原创 AcWing-1432. 棋盘挑战

给定一个N×N的棋盘,请你在上面放置N个棋子,要求满足:每行每列都恰好有一个棋子 每条对角线上都最多只能有一个棋子 1 2 3 4 5 6 -------------------------1 | | O | | | | | -------------------------2 | | | | O | | | -------------------------3 | | | | | | O...

2021-06-03 13:12:29 100

空空如也

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

TA关注的人

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