自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (1)
  • 收藏
  • 关注

原创 (AcWing)3774. 亮灯时长

3774. 亮灯时长自习室内有一个智能灯。在 0 时刻,管理员会将打开电闸,并将灯点亮。在 M 时刻,管理员会直接拉下电闸,此时,如果灯处于点亮状态,则会因为断电而熄灭。在 0∼M 之间有 n 个不同时刻,不妨用 a1,a2,…,an 表示,其中 0<a1<a2<…<an<M。在这 n 个时刻中的每个时刻,管理员都会拨动一次智能灯的开关,使灯的状态切换(亮变灭、灭变亮)。现在,你可以最多额外指定一个时刻(也可以不指定),让管理员在此时刻也拨动开关一次。注意选定的时刻

2021-08-02 12:43:42 169

原创 (AcWing)3769. 移动石子

3769. 移动石子一共有 n 个箱子排成一排,从左到右依次编号为 1∼n。其中,第 i 号箱子中放有 ai 个石子。现在,你可以进行最多 d 次操作。每次操作可以将一个石子从一个箱子移动至另一个与其相邻的箱子里。我们希望通过合理操作使得 1 号箱子内的石子数量尽可能大。请问,这个最大可能值是多少?输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据第一行包含两个整数 n 和 d。第二行包含 n 个整数 a1,a2,…,an。输出格式每组数据输出一行结果,表示答案。数据范

2021-07-31 15:43:10 200

原创 (AcWing)3768. 字符串删减

3768. 字符串删减给定一个由 n 个小写字母构成的字符串。现在,需要删掉其中的一些字母,使得字符串中不存在连续三个或三个以上的 x。请问,最少需要删掉多少个字母?如果字符串本来就不存在连续的三个或三个以上 x,则无需删掉任何字母。输入格式第一行包含整数 n。第二行包含一个长度为 n 的由小写字母构成的字符串。输出格式输出最少需要删掉的字母个数。数据范围3≤n≤100输入样例1:6xxxiii输出样例1:1输入样例2:5xxoxx输出样例2:0输入样例3:10

2021-07-30 19:43:53 218

原创 (LC)171. Excel 表列序号

171. Excel 表列序号给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回该列名称对应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: columnTitle = “A”输出: 1示例 2:输入: columnTitle = “AB”输出: 28示例 3:输入: columnTitle = “ZY”输出: 701示例

2021-07-30 19:38:44 131

原创 关于Richard(给我看看看)有问题直接留言!!!

github账号Richard.gitee账号Richard.CSDN账号Richard.感谢关注!!!菜鸡一个希望大佬们随时和我我交流技术问题!后续会持续更新博客(自己的学习路程)以及算法题!!!代码将在github和gitee托管!Java后端!!!...

2021-07-29 18:33:17 141

原创 (AcWing)3767. 最小的值

3767. 最小的值给定两个长度为 n 的 01 数组 a1,a2,…,an 和 b1,b2,…,bn。请你构造一个长度为 n 的正整数数组 p1,p2,…,pn。要求 ∑i=1nai×pi>∑i=1nbi×pi 成立。此外,maxi=1npi 需要尽可能小。输出最小可能值。输入格式第一行包含整数 n。第二行包含 n 个整数 a1,a2,…,an。第三行包含 n 个整数 b1,b2,…,bn。输出格式输出 maxi=1npi 的最小可能值。如果不存在满足条件的数组 p,则输出

2021-07-29 18:24:01 66

原创 (LC)863. 二叉树中所有距离为 K 的结点

863. 二叉树中所有距离为 K 的结点给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2输出:[7,4,1]解释:所求结点为与目标结点(值为 5)距离为 2 的结点,值分别为 7,4,以及 1在这里插入图片描述注意,输入的 “roo

2021-07-28 17:16:44 61

原创 (AcWing)3764. 三元数异或

3764. 三元数异或如果一个整数,其各个数位不包含 0,1,2 以外的数字,则称这个数为三元数。例如,1022,11,21,2002 都是三元数。给定一个可能很长的三元数 x,其首位数字(最左边那位)保证为 2,其他位数字为 0 或 1 或 2。我们规定,两个长度为 n 的三元数 a 和 b 可以通过三元异或运算 ⊙ 得到另一个长度为 n 的三元数 c。设 ai,bi,ci 分别表示 a,b,c 的第 i 位的数字,则 ci=(ai+bi)mod3。例如,10222 ⊙ 11021=21210

2021-07-28 12:53:18 235

原创 Git提交四步骤

1、进入修改的目录 git add .2、查看状态 git status3、提交到本地仓库git commit -m “提交信息”4、提交到远程仓库git push origin master

2021-07-27 19:18:05 126

原创 (AcWing)3763. 数字矩阵

3763. 数字矩阵给定一个 n×m 的整数矩阵,其中第 i 行第 j 列的元素为 aij。你可以进行任意多次如下操作:选择矩阵中的两个相邻元素,将它们均乘以 −1。同一个元素可以被选中多次。你需要通过上述操作,使得矩阵中所有元素的和尽可能大。计算并输出这个和的最大可能值。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据第一行包含两个整数 n,m。接下来 n 行,每行包含 m 个整数,表示整个矩阵,其中第 i 行第 j 列的数为 aij。输出格式每组数据输出一行结果,表

2021-07-27 12:44:00 113

翻译 (AcWing)3762. 二进制矩阵

3762. 二进制矩阵给定一个 n×m 大小的二进制矩阵,矩阵中只包含 0 和 1。现在,你可以进行如下操作:选中一个 2×2 的子矩阵,改变其中 3 个元素的值(0 变为 1,1 变为 0)。你的任务是通过上述操作,将矩阵中的全部元素都变为 0。你的总操作次数不得超过 3nm 次。可以证明,答案一定存在。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据第一行包含整数 n,m。接下来 n 行,每行包含一个长度为 m 的 01 字符串,表示给定的二进制矩阵。输出格式每组数据

2021-07-26 17:39:06 276

原创 (AcWing)3761. 唯一最小数

3761. 唯一最小数给定一个长度为 n 的整数数组 a1,a2,…,an。请你找到数组中只出现过一次的数当中最小的那个数。输出找到的数的索引编号。a1 的索引编号为 1,a2 的索引编号为 2,…,an 的索引编号为 n。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据第一行包含整数 n。第二行包含 n 个整数 a1,a2,…,an。输出格式每组数据输出一行结果,即满足条件的数的索引编号,如果不存在满足条件的数,则输出 −1。数据范围1≤T≤2×104,1≤n≤2×

2021-07-25 14:22:56 130

原创 (LC)1736. 替换隐藏数字得到的最晚时间

1736. 替换隐藏数字得到的最晚时间给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。示例 1:输入:time = “2?:?0”输出:“23:50”解释:以数字 ‘2’ 开头的最晚一小时是 23 ,以 ‘0’ 结尾的最晚一分钟是 50 。示例 2:输入:time = “0?:3?”输

2021-07-24 20:05:15 91

原创 (LC)206. 反转链表

206. 反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000/** * Definition for singly-linked list. * public cla

2021-07-15 00:29:04 66

原创 (LC)21. 合并两个有序链表

21. 合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序 排列

2021-07-15 00:19:04 88

原创 (LC)350. 两个数组的交集 II

350. 两个数组的交集 II给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。进阶:如果给定的数组已经排好序呢?你将如何优化你的算法?如果 nums1 的大小比 nums2 小很多,

2021-07-08 21:30:51 104

原创 (LC)977. 有序数组的平方

977. 有序数组的平方给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= nums.length <= 104-1

2021-07-07 22:20:45 78

原创 (LC)53. 最大子序和

53. 最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nums = [-100000]输出:-100000提示:

2021-07-07 01:06:29 80

原创 (LC)剑指 Offer 53 - I. 在排序数组中查找数字 I

剑指 Offer 53 - I. 在排序数组中查找数字 I统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0 <= 数组长度 <= 50000class Solution { public int search(int[] nums, int target) { return

2021-06-20 20:27:04 62

原创 (AcWing)3672. 数组重排

给定一个数组 a1,a2,…,an。如果数组 a 满足对于任意 1≤i<j≤n,j−aj≠i−ai 均成立,则称数组 a 是一个好数组。现在,请你通过将数组 a 中的元素任意重新排序来使其变为一个好数组(当然,你也可以选择保留初始顺序)。可以通过数组重排得到的好数组可能不止一个,你只需输出任意一个满足条件的即可。例如,对于数组 [1,1,3,5],重排后的好数组有 [1,3,5,1],[3,5,1,1],[5,3,1,1] 等等,而不好的数组有 [3,1,5,1],[1,1,3,5],[1,1

2021-06-16 21:50:04 174

原创 (AcWing)3686. 移动序列

给定一个长度为 n 的 01 整数序列 a1,a2,…,an,保证序列中至少存在一个 1。我们希望通过一系列的移动操作,将所有的 1 聚在一起,也就是使任意两个 1 之间不存在任何 0。每次移动时,选取一个连续的由 1 构成的区间 [l,r](即对于所有 l≤i≤r,ai=1 均成立),进行下列两种操作之一:将位于位置 l 的 1 移动至位置 r+1,即令 al=0,ar+1=1(注意其他元素并无变化),可以进行该操作的前提是 r+1≤n 并且 ar+1=0。将位于位置 r 的 1 移动至位置 l−

2021-06-16 21:49:19 173

原创 (AcWing每日一题·夏季 )3679. 素数矩阵

给定一个整数 n,请你构造一个满足下列条件的 n×n 矩阵:矩阵中的所有数字都是不超过 105 的非负整数。矩阵中的所有数字都不是素数。每行的数字之和都是素数。每列的数字之和都是素数。如果答案不唯一,则输出任意合理结果均可。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据占一行,包含一个整数 n。输出格式每组数据输出占 n 行,每行包含 n 个空格隔开的整数,表示你构造的满足条件的矩阵。数据范围1≤T≤10,2≤n≤100输入样例:242输出样例:4 6

2021-06-16 21:47:40 84

原创 (LC)374. 猜数字大小

猜数字大小猜数字游戏的规则如下:每轮游戏,我都会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1 或 0):-1:我选出的数字比你猜的数字小 pick < num1:我选出的数字比你猜的数字大 pick > num0:我选出的数字和你猜的数字一样。恭喜!你猜对了!pick.

2021-06-14 21:46:51 51

原创 (LC)94. 二叉树的中序遍历

二叉树的中序遍历给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入:root = [1,null,2]输出:[1,2]提示:树中节点数目在范围 [0, 100] 内-100 <= Node.val <= 100/.

2021-06-04 20:00:31 57

原创 (LC)160. 相交链表

相交链表给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Intersected at ‘8’解.

2021-06-04 19:47:33 118

原创 NQueen问题(N皇后问题Java)

N皇后问题一个皇后行列斜线不能放另外一个皇后,不然会打架package com.richard.back;/** * NQueen---回溯法 */public class NQueens { // 皇后数 static int QUEENS = 8; // 下标表示行,值表示queen存储在哪一列 int[] result = new int[QUEENS]; /** * 在每行放置Queen * @param row

2021-05-12 11:04:57 303

原创 贪心部分背包问题(Java)

可以自己换物品价值排行物品package com.richard.greedy;/** * 物品 */public class Goods { String name; double weight; double price; double value; public Goods(String name, double weight, double price) { this.name = name; this.we

2021-05-12 11:02:23 127

原创 字符串匹配问题(BF,RK)Java

字符串匹配BF–Brute Force暴力匹配算法 朴素算法package com.richard.strmatch;/** * BF--Brute Force暴力匹配算法 朴素算法 * 暴力匹配法 */public class BF { /** * 检测匹配 * @param main 主串 * @param pattern 模式串 * @return boolean */ public static bool

2021-05-10 22:02:44 63

原创 快速排序(Java两种方式)

快速排序(Java)只需要掌握一种就好快速排序–双边循环package com.richard.sort;/** * 快速排序--双边循环 */public class QuickSort1 { // 递归排序 public static void quick(int[] arr, int start, int end) { // 递归结束 if (start >= end) { return ;

2021-05-10 18:32:18 2319

原创 红黑树(Java实现)

RBTree根节点是黑色每个叶子节点都是黑色的空结点(NIL结点)(为了简单期间,一般会省略该节点)如果一个节点是红色的,则它的子节点必须是黑色的(父子不能同为红)从任一结点到其每个叶子的所有路径都包含相同数目的黑色结点(平衡的关键)新插入节点默认为红色,插入后需要校验红黑树是否符合规则,不符合则需要进行平衡节点package com.richard.brtree;public class BRTreeNode { private int key; private

2021-05-09 17:12:41 1560 1

原创 数据结构与算法(无排版有兴趣的小伙伴可私我要原版)

数据结构与算法课程介绍数据结构和算法,一个非常古老的课题。上学的时候就觉得数据结构和算法很难学,似乎就从来没学明白过。工作的时候,只求程序能跑,并不太关注性能,所以尽量避坑(ArrayList Or LinkedList),哪个简单用哪个想跳槽去大厂或小厂,只要面试到数据结构和算法,必跪无疑…数据结构和算法是程序员的内功,架构搭的再好,技术使用的再新,如果没有好的数据结构设计和算法,系统也会出问题甚至崩塌,尤其是在互联网软件上,细节决定成败!练好内功尤为重要!本章作为基础章节,从零基础建

2021-05-09 12:52:14 417

原创 Swagger3.0.0进不去Swagger页面解决方法

多半是降级问题 直接换成2.9.2就可以进入访问localhost:8080/swagger-ui.html <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </de

2021-04-29 19:53:26 2617 1

原创 Springboot报错(循环视图路径[index]:将再次分派回当前处理程序URL[/index]。检查ViewResolver设)

看依赖是否导入,极有可能是thymeleaf依赖未导入<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>找了一节课 这个错误 哭了...

2021-04-28 09:04:11 673 3

原创 Java中方法next()和nextLine()的区别

Java中方法next()和nextLine()的区别Java中Scanner类中的方法next()和nextLine()都是吸取输入台输入的字符,区别:1. next()不会吸取字符前/后的空格/Tab键,只吸取字符,开始吸取字符(字符前后不算)直到遇到空格/Tab键/回车截止吸取; 2. nextLine()吸取字符前后的空格/Tab键,回车键截止。...

2021-04-16 09:24:03 112 2

原创 JVM(b站颜群)详细笔记

JVM: java virtua Machinejdk中包含了jvm和“屏蔽操作系统差异的组件”jvm各个操作系统之上是一致的“屏蔽操作系统差异的组件:在各个PC上各不相同(联想下载jdk,不同系统 需要下载不同版本的jdk)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Vuu4AmN-1617697367373)(jvm笔记.assets/1568186168727.png)]类的生命周期生命周期: 类的加载->连接->初始化->使用-&

2021-04-06 16:25:03 493

原创 (LC)80. 删除有序数组中的重复项 II

80. 删除有序数组中的重复项 II给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len =

2021-04-06 16:19:55 50

原创 (LC)面试题 17.21. 直方图的水量

面试题 17.21. 直方图的水量给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分表示水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6核心思想:总体体积减去柱子体积public int trap(int[] height) { int sum

2021-04-02 15:47:37 63

转载 数据库(全)

数据库目录数据库绪论数据管理的三个阶段人工管理阶段文件系统阶段数据库系统阶段基本术语数据(Data)数据库(Database,简称DB)数据库管理系统(DBMS)数据冗余度:数据的安全性(Security)数据的完整性(Integrity)并发(Concurrency)控制数据库恢复(Recovery)数据库的三要素数据(描述事物的符号记录,数据库里面存储的内容)存储器(外存,一般是硬盘,数据库的载体)数据库管理系统(DBMS,数据库的管理软件)

2021-04-01 19:18:08 389

原创 (LC) 1006. 笨阶乘

1006. 笨阶乘通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积。例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1。相反,我们设计了一个笨阶乘 clumsy:在整数的递减序列中,我们以一个固定顺序的操作符序列来依次替换原有的乘法操作符:乘法(*),除法(/),加法(+)和减法(-)。例如,clumsy(10) = 10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2 * 1。然而,这些运算仍然使用通常的算术

2021-04-01 15:32:37 88

原创 (LC)90. 子集 II

90. 子集 II给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10-10 <= nums[i] <= 10 public List

2021-03-31 14:13:16 77

狂神说笔记(最全).zip

狂神笔记大全(最全)

2021-03-21

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

TA关注的人

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