自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 洛谷P8840 Java题解

现在你知道了一份报告的卷面基础分 aa 和它的页数 pp ,请你计算这份报告的最终得分。刚开始想的很复杂,不知道该怎么解决输入,创建二维数组的话输入输出有点麻烦。第一行一个整数 T(1 \leq T \leq 1000)T(1≤T≤1000) ,表示数据组数。若是报告字数低于 1616 页,则扣 1010 分,如果分数低于 00 分了,则记作 00 分。若是报告字数超过 2020 页,每超过 11 页扣 11 分 ,直到分数扣到 00 分为止。共 TT 行,每行一个整数,表示该次询问的数据最终的得分。

2022-11-17 17:59:32 474 1

原创 Leetcode782 变为棋盘

首先要考虑到棋盘的合法性,如果第一行为10101,那么第二行就为01010,第三行就和第一行相同。所以要么和第一行相同,要么和第一行完全相反。然后从整体看,分为偶数和奇数类型,我们可以看到四个角要么是0101,要么是全为1或全为0.那么如果不符合这个,棋盘业不合法。链接:https://leetcode.cn/problems/transform-to-chessboard。如果不存在可行的变换,输出 -1。“棋盘” 是指任意一格的上下左右四个方向的值均与本身不同的矩阵。来源:力扣(LeetCode)

2022-08-23 20:23:15 220

原创 Leetcode655 输出二叉树

对于放置在矩阵中的每个节点,设对应位置为 res[r][c] ,将其左子节点放置在 res[r+1][c-2height-r-1] ,右子节点放置在 res[r+1][c+2height-r-1]。给你一棵二叉树的根节点 root ,请你构造一个下标从 0 开始、大小为 m x n 的字符串矩阵 res ,用以表示树的 格式化布局。根节点 需要放置在 顶行 的 正中间 ,对应位置为 res[0][(n-1)/2]。树的 高度 为 height ,矩阵的行数 m 应该等于 height + 1。

2022-08-22 21:09:46 228

原创 Leetcode1455 检查单词是否为句中其他单词的前缀

如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。如果 searchWord 不是任何单词的前缀,则返回 -1。链接:https://leetcode.cn/problems/check-if-a-word-occurs-as-a-prefix-of-any-word-in-a-sentence。商业转载请联系官方授权,非商业转载请注明出处。

2022-08-21 20:57:04 191

原创 Leetcode654 最大二叉树

链接:https://leetcode.cn/problems/maximum-binary-tree。给定一个不重复的整数数组 nums。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。分析:首先看到题呢,想到的就是用递归的方法解决问题。创建一个根节点,其值为 nums 中的最大值。返回 nums 构建的 最大二叉树。来源:力扣(LeetCode)

2022-08-20 22:05:41 121

原创 Leetcode1450 在规定时间内完成作业的学生人数

请返回在查询时间 queryTime 时正在做作业的学生人数。形式上,返回能够使 queryTime 处于区间 [startTime[i], endTime[i]](含)的学生人数。链接:https://leetcode.cn/problems/number-of-students-doing-homework-at-a-given-time。已知,第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。商业转载请联系官方授权,非商业转载请注明出处。

2022-08-19 21:49:43 64

原创 Leetcode1224 最大相等频率

链接:https://leetcode.cn/problems/maximum-equal-frequency。看到此题,首先想到的就是创建两个哈希表,一个用来存储数字出现的次数,一个用来存储频率相关的次数。如果删除这个元素后没有剩余元素存在,仍可认为每个数字都具有相同的出现次数(也就是 0 次)。商业转载请联系官方授权,非商业转载请注明出处。从前缀中 恰好删除一个 元素后,剩下每个数字的出现次数都相同。解法二,由于数据范围较小,可以用数组作为简易哈希表。来源:力扣(LeetCode)...

2022-08-18 22:10:14 113

原创 Leetcode1302 层数最深叶子节点的和

给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和。

2022-08-17 18:50:35 67

原创 Leetcode641 实现双端队列

boolean insertFront():将一个元素添加到双端队列头部。boolean deleteFront() :从双端队列头部删除一个元素。boolean deleteLast() :从双端队列尾部删除一个元素。boolean isEmpty() :若双端队列为空,则返回 true ,否则返回 false。int getFront() ):从双端队列头部获得一个元素。如果双端队列为空,返回 -1。boolean isFull() :若双端队列满了,则返回 true ,否则返回 false。...

2022-08-15 17:41:11 146

原创 mybatis项目雏形

创建普通maven项目或者springboot脚手架创建springboot项目。编写接口类,mybatis里的interface类称为mapper。在resource里创建application.yml连接数据库。

2022-07-28 15:58:28 148

原创 初步的springboot程序步骤

aaa

2022-07-20 23:40:45 112

原创 框架01 框架概念&spring简介

框架(Framework),是基于建筑概念,适用于理解软件等技术领域各种框架、架构概念。是用于承载一个系统必要功能的基础要素的集合。spring框架里包含spring framework ,spring boot ,spring cloud,……ioc: Inversion of Control 控制反转以前在学习Java时侯通过new创建对象,而现在通过spring创建以Student01类为例5.1.3,spring框架创建对象①添加依赖②添加配置以student类为例举例:③实现5.2

2022-06-11 23:42:19 158

原创 MyBatis 04

MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。缓存可以极大的提升查询的效率。在 MyBatis 中默认定义了两级缓存:一级和二级缓存:一级缓存也叫本地缓存,作用域默认为 SqlSession。当 Session flush 或 close 后,该 Session 中的所有 Cache 都将被清除。一级缓存不能关闭,但可以调用 clearCache() 来清空一级缓存。在EmployeeMapper接口中,添加方法:1.1.2,配置映射1.1.3,测试执行后输出

2022-06-09 20:30:00 206

原创 Mybatis 03

动态 SQL 是 MyBatis 的强大特性之一。借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了易用性。使用动态 SQL 最常见情景是根据条件包含 where 子句的一部分。例如:给员工增加一个按姓名查询的方法:实现:3.2,SQL片段为了重用一些语句,我们可以使用 sql 标签来定义一些共用的代码形成 SQL 片段。定义方式为:它有一个必须属性是id,用于给这个sql片段一个引用名称,共用代码写在这个标签中间。定义好后,在使用的地方通过 进行使用

2022-06-08 11:30:00 73

原创 MyBatis 02

MyBatis最强大的地方就在于它的语句映射,正由于它的强大,映射对应的xml文件代码编写就会相应简单。可以明显感知到比同功能的jdbc代码少了很多很多。MyBatis致力于减少使用成本,让用户更专注于SQL代码。SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出):这个元素用于执行insert语句向数据库中插入数据在EmployeeMapper接口中添加插入方法2.2.2,编写映射在EmployeeMapper.xml文件中实现add方法2.2.3,测试2.3,select这个

2022-06-08 00:00:00 132

原创 MyBatis 01

MyBatis 01

2022-06-07 13:00:00 151

原创 Servlet

servlet

2022-06-06 23:45:00 76

原创 jdbc-连接池

jdbc

2022-06-05 16:38:34 173

原创 jdbc 数据库操作

jdbc

2022-06-04 20:52:49 76

原创 JavaScript (11) ES6语法

1. ES6 语法ECMAScript 6 是继ECMAScript 5 之后发布的JavaScript 语言的新一代标准,加入了很多新的特性和语法,该标准于2015年6月17日发布了正式版本,并被正式命名为ECMAScript 2015。Vue项目开发中经常会用到ECMAScript 6语法,因此接下来将对这一新标准中的一些特性和常用语法进行简要介绍。1.1 块作用域let和const块级声明用于声明在指定块的作用域之外无法访问的变量。块级作用域存在于:函数内部块中(也就是“{”和“}”之间的

2022-05-05 21:00:00 787

原创 JavaScript(10) 面向对象

1,面向对象1.1构造函数在ES6之前,JavaScript 不是基于类来创建,而是基于构造函数(constructor)和原型链(prototype)来创建对象。构造函数是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与new关键字一起使用。我们把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。在JS中,使用构造函数时要注意以下两点:构造函数用于创建某一类对象,其首字母要大写构造函数要和new关键字一起使用才有意义new关键字在创建对象时做以下几件事件:在

2022-05-04 19:49:43 1027

原创 JavaScript(9)闭包,this的深入理解

1,闭包在在正常情况下,函数((函数作用域)中是可以访问卧部变量的,而外部是无法访问函数作用域中的变量。当外部访问函数中的变量时, 会报Uncaught.ReferenceError: x is not defined。闭包就可以解决这个问题。1.1外部访问局部变量在函数内部,再定义一个函数。来计算后把结果返回给调用来实现,这种方式就是闭包。1.2闭包概念简单理解就是:闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简

2022-05-04 16:32:52 800

原创 JavaScript(8)深入理解作用域

1,深入理解作用域1.1什么是作用域作用域指一个变量的作用的范围。通常来说,一段程序代码在所用到的名字并不总是有效和可用的,而限定于这个名字的可用性代码范围就是这个名字的作用域。作用域的使用提高了程序的逻辑的局部性,增强了程序的可靠性,减少了名字的冲突。共有两种作用域类型:全局作用域函数作用域1.1.1全局作用域在script标签中的JavaScript代码都是全局作用域,当页面打开时全局作用域就会自动创建,而当页面关闭时,也会随之销毁。在全局作用域之中有一个全局的window对象可以使用

2022-05-04 00:23:28 605

原创 JavaScript(7)本地存储,函数深入理解

1,本地存储1.1本地存储特性数据存储在用户浏览器中设置和读取数据方便,而且页面刷新不丢失数据容量较大,sessionStorage约5M,localStorage约20M只能存储字符串,可以将对象JSON.stringify()编码后存储1.2sessionStorage特点生命周期为关闭浏览器窗口在同一个窗口下数据可以共享以键值对的形式存储使用方法:方法说明sessionStorage.setltem(key,value)存储数据session

2022-05-03 23:38:33 396

原创 JavaScript(6)事件

1,事件详解1.1事件注册给元素添加事件就称为注册事件,注册事件也成为绑定事件,注册事件有两种方式:传统注册方式监听注册方式1.1.1传统注册传统注册方式是通过指定事件源绑定回调函数的形式来处理时间,当指定事件触发后回调函数就会被调用,这样就可以实现页面和用户之间的交互了。通过HTML元素指定属性来绑定通过DOM对象指定的 属性绑定1.1.2监听注册通过事件监听来注册,称为设置事件监听器。通过EventTarget.addEventListener()方法来实现。EventTar

2022-05-03 22:42:47 296

原创 JavaScript(5)节点操作和位置操作

1,节点操作1.1节点概述网页中所有内容都是节点(如:标签,属性,文本,注释等),在DOM中,节点使用node来表示。HTML DOM树中所有节点均可通过JavaScript进行访问,所有HTML元素均可被修改,创建或删除。1.2节点属性一般来说,至少有nodeType(节点类型),nodeName(节点名称),nodeValue(节点值)这三个基本属性。节点分类nodeNamenodeTypenodeValue文档节点#document9null属性节点标签

2022-05-01 22:05:59 1093

原创 JavaScript(4)案例

1,图片切换<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>图片切换</title> <style> img{ width: 200px; height: 200px; } </style></head

2022-05-01 19:24:46 574

原创 JavaScript(3)DOM和BOM

1,BOM1.1什么是BOMBOM(browser object model)浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心内容是Windows。BOM由一系列相关的对象构成,并且每个对象都提供了很多的方法与属性。1.2BOM的结构1.3 window对象window对象是浏览器顶级对象,它具有双重角色。它是JavaScript访问浏览器窗口的一个接口对象它是一个全局对象,所有定义在全局作用域的变量,函数都是它的属性或方法。由于所有全局属性和方法都属于window对

2022-05-01 16:36:47 267 1

原创 JavaScript(2) 流程控制与函数

1,流程控制流程控制是控制程序的执行方式和流程。在JavaScript中包括顺序结构,分支结构和循环结构。1.1顺序结构按顺序从上到下执行代码,是最基本最简单的流控制。1.2分支结构从上到下执行过程中,根据不同条件执行不同的代码,而得到不同的结果。①if()else ②switch case ③三目运算符 条件?A:B1.3循环结构根据条件来反复执行某段代码。①for循环 ②while循环 ③do…while循环2,数组一组数据的集合,每个数据被称为一个元素,在数组中可以存储任意类

2022-04-30 20:47:46 393

原创 JavaScript(1)基础语法与基本概念

1,什么是JavaScript?JavaScript是一门函数优先的轻量级,解释型编程语言。分为①SCMAScript:规定了JavaScript这门语言的语法②Dom:文档对象模型,用于操作页面③Bom:浏览器对象模型2,JavaScript的作用嵌入动态文本于HTML页面对浏览器事件做响应读取HTML元素在数据被提交到服务器之前做验证检测访客的浏览器信息控制cookie,包括创建和修改信息基于Node.js计数进行服务器端编程3,如何使用JavaScript行内使用

2022-04-28 00:31:20 395

原创 第十四章 网络

一,客户端/服务器计算Java提供ServerSocket类来创建服务器套接字,Socket类来创建客户端套接字。Internet 上的两个程序通过使用IO流的服务器套接字和客户端套接字进行通信。网络功能紧密地集成在Java中。Java API提供用于创建套接字的类来便于程序通过Internet通信。套接字( socket)是两台主机之间逻辑连接的端点,可以用来发送和接收数据。Java对套接字通信的处理非常类似于对输入输出操作的处理,因此,程序对套接字读写就像对文件读写一样容易。网络程序设计通常涉及一

2022-04-20 23:03:50 877

原创 leetcode118 杨辉三角

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> ret = new ArrayList<List<Integer>>(); //创建一个链表

2022-04-20 20:38:37 86

原创 leetcode566 重塑数组

在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。考察:数组,矩阵class Solution { pub

2022-04-20 20:19:34 72

原创 第十三章 多线程和并行程序设计

一,线程的概念线程提供了运行一个任务的机制。对于Java而言,可在一个程序中并发的启动多个线程。这些线程可以在多出力器系统上同时运行。在单处理器系统中,多个线程共享cpu时间称为事件分享,而操作系统负责调度及分配资源给他们。多线程可以使程序反应更快,交互性更强,执行效率更高。线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为一个守护程序。当某个线程中运行的代码创建一个新 Threa

2022-04-20 16:54:49 178

原创 leetcode121 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0考察:数组,动态规划//方法一,暴力破解,但是超时class Solution { public int maxProfit(int[] prices) { int sum = 0;

2022-04-19 22:29:01 61

原创 leetcode305 两个数组的交集Ⅱ

给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。class Solution { public int[] intersect(int[] nums1, int[] nums2) { //如果nums1元素个数大于nums2元素个数,交换数组位置 if (nums1.length > nums2.

2022-04-19 21:43:01 110

原创 第十二章 文本I/O

一,file类File 类意图提供了一种抽象,这种抽象是指以不依赖机器的方式来处理很多依赖于机器的文件和路径名的复杂性。F i l e 类包含许多获取文件属性的方法: File file = new File("F:\\桌面\\1.txt"); //创建一个file对象 file.getName(); //返回由此抽象路径名表示的文件或目录的名称。 file.getParent(); //返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。 file.get

2022-04-19 19:15:39 212

原创 leetcode88 合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。//直接合并后用arrays的sort方法排序class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { for (int i = 0; i != n;

2022-04-18 22:21:25 87

原创 leetcode01两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。//暴力破解,双重循环找到符合目标target的值,然后返回class Solution { public int[] twoSum(int[] nums, int target) { int len = nums.length; fo

2022-04-18 22:15:15 65

原创 leetcode53 最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。//暴力破解,寻找所有可能的子序列和,然后找到最大值class Solution { public int maxSubArray(int[] nums) { int res = nums[0]; int sum = 0; for(int num : nums) { if(sum &g

2022-04-18 00:13:30 160

空空如也

空空如也

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

TA关注的人

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