自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录——单调栈 刷题记录

这题和接雨水类似,不过是反方向的,单调栈单调递增,遇到比栈顶元素小的元素时,弹出栈顶元素并和新栈顶一起讨论,每次选择弹出的栈顶高度*当前栈顶元素下标与当前下标的差值,得到矩形面积。单调栈从栈底到栈顶单调递减,遇到下一个元素大于栈顶元素时(while),弹出栈顶元素作为凹槽的底,新元素为右边界,弹出元素后的栈顶为左边界,计算width和high计算凹槽体积。单调栈指从栈底到栈顶单调递增/递减的栈,可以使用单调栈查找右边最近的更大值。这题在遍历过程中有些不一样,但是本质依然是单调栈。

2024-07-02 12:59:59 65

原创 代码随想录 动态规划 刷题记录

采用后序遍历,计算不偷当前节点和偷当前节点的两种情况下,孩子的选择,注意返回值用数组,下标为0记录不偷该节点所得到的的最大金钱,下标为1记录偷该节点所得到的的最大金钱。dp[i][j]:长度为[0, i]的字符串text1与长度为[0, j]的字符串text2的最长公共子序列为dp[i][j]递推公式:构成dp[i]的元素包括dp[i-nums[i]],所以dp[j] += dp[j-nums[i]]注意递推公式不是选择dp[i-1],而是nums[i],和dp[i-1] + nums[i]进行比较。

2024-05-10 17:37:57 699

原创 代码随想录——贪心算法 刷题记录

每遍历一位时都要确定当前范围及在此范围内下次能到达的最大范围,下次能到达终点则cnt+1,如果到本次范围的最后一位时,更新当前范围。然后遍历,维护一个目前最大下标和上次最大下标,如果当前i为目前最大下标,则计算长度加入list,否则看看是否需要更新目前最大下标。记录最大连续和cnt,cnt每次添加数组的一位数,当当前最大连续和小于0时,设置连续和为0,重新开始规划新的子数组。设置每个节点的三种状态,从叶子节点到根节点后序遍历,0无覆盖,1有摄像头,2有覆盖。和452很像,都需要先排序然后计算交叉数量。

2024-04-12 15:40:01 337

原创 代码随想录——回溯算法 刷题记录

本轮的不可重复指的是在{1, 1, 2},3中不出现两个{1, 2},为了开销不可以在最后筛选去重,可以在处理之前进行判断,如果该数字相同的数字已经被遍历,则不再执行递归。和77类似,不过可以把判断总和的部分放在叶子节点处理,不用放在循环里,在回溯的部分记得把总和也回溯一下,不要只回溯item。需要注意:for循环回溯是横向,递归是纵向,因此判断前面的数字已经被遍历的判断条件应该是used[i-1] == false。每轮递归遍历的是digits的每个数字,"23"里的2。

2024-04-02 10:37:06 1371

原创 代码随想录——二叉树 刷题记录

因为是二叉搜索树,所以需要对比当前节点和pq的节点值,如果当前小于pq则在右子树中寻找,如果当前大于pq则从左子树寻找,如果刚好在pq之间,则该节点就是最近公共祖先。注意当其中一个树的节点不存在时,直接返回存在的节点(带着孩子)就好,不需要新建节点,如果新建节点,则该节点后续孩子还需要处理。一定注意返回值,返回树的根节点,那么当该节点不是删除的节点时,需要改变左右孩子进行递归然后返回自身。处理节点的左孩子时,如果左孩子节点删除,则需要该节点的左孩子定位到原来左孩子的右孩子,可以多做几遍。

2024-03-22 21:09:19 2000

原创 代码随想录——栈与队列 刷题记录

用小顶堆可以永远只排k个节点,大顶堆需要排全部且poll顶端元素后需要重新排序。这题有点难,想到用map但是想不到如何留下前k个。优化:可以使用一个queue实现。遇到右括号,检查栈顶元素是否相等。注意类中的属性声明和初始化写法。遇到左括号,对应右括号进栈。

2024-03-08 14:18:06 235

原创 代码随想录——双指针 刷题记录

这一章的题目全都出自前三章,重做一遍。

2024-02-27 17:58:01 170

原创 代码随想录——字符串 刷题记录

交换,没有难点注意题干是“每2k”次,所以要有循环在对剩余的处理中,要先检查每次的剩余数量,包括第一次,所以应该先计算剩余多少决定怎么交换,如果剩余多余2k再进行前k的交换。

2024-01-11 16:05:11 407

原创 代码随想录——哈希表 刷题记录

当我们遇到了要的时候,就要考虑哈希法。但是哈希法也是,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。用哈希表存储每个字母及对应的数量,代码随想录用了26字母的数组解决,我用的HashMap记录s,再遍历t,减掉t中字母后得到最后的HashMap。

2024-01-03 18:33:05 413

原创 代码随想录——链表 刷题记录

可以把环分成x, y, z,分析三者之间的数学关系。

2023-12-16 17:00:29 390

原创 代码随想录——数组 刷题记录

【代码】代码随想录——数组 刷题记录。

2023-12-14 17:15:41 409

原创 Ruoyi若依在IDEA部署Tomcat报错class path resource [……class] cannot be opened because it does not exist

在Tomcat和maven都配置好的情况下,将项目打包到Tomcat发布出现以上报错。

2023-11-24 16:11:17 2410

原创 蓝桥杯准备笔记(持更2021.04.12)

Notes2020.04.10 BEGIN-1-4 +等比数列等差数列求和时,大概率是会超限的,所以可能会用到长整型long,不要采用for循环递加,会超时,直接用公式(1)等差数列求和公式S = n(a1+an)/2(2)等比数列求和公式S = [a1(1-q^n)]/(1-q)规定小数点位数输出创建小数格式DecimalFormat对象dFormat使用dFormat调用format方法输出DecimalFormat dFormat = new DecimalFormat("#0.0

2021-04-10 22:55:31 131

原创 蓝桥杯JAVA练习0408-BASIC-19 基础练习 完美的代价

基础练习 完美的代价2021.04.08完美的代价这道题搁置好久了因为贪心实在是难以理解比赛马上要开始了所以说啥也得搞定一道贪心的题目参考了大佬的代码最后自己又重新敲了一遍思路如下:Impossible:数量为单数的字母超过两个,不可能构成回文串0:单个或者两个字母,不需交换others:查找首字母对应相同的字母最后一次出现的下标index,如果首字母只有一个(index=0),则计算移动到字符串最中间的位置需要的步数;首字母出现多于一次,则计算最后一次出现位置(index)移动到

2021-04-10 20:03:10 126

原创 蓝桥杯JAVA练习0224-ALGO-4笔记

ALGO-4 结点选择结点选择50%这道题是树形动态规划,参考了大佬的代码由于JAVA的一些原因,C++能满分的代码用JAVA只能过一半的数据首先需要读懂题目第一行是结点的个数第二行是每个结点的权再向下是树的边(不分父子)建立两个全局二维数组tree[i][j]=a(a!=0)代表树有一条i到a的边,每行个数取决于i结点和其他结点有几条边dp[i][0]代表i结点i不选中时的所有权值之和dp[i][1]代表结点i选中时所有权值之和首先将结点i的权值存在dp[i][1]中作为初始值

2021-02-25 20:55:03 158 2

原创 蓝桥杯JAVA练习0224-ALGO2-3笔记

前几天去学车考驾照了现在是有证写代码ALGO-2 最大最小公倍数最大最小公倍数本来这道题的第一反应是挨个试,所以需要套三层循环,再写一个gcd方法就可以了,但是1 <= N <= 10^6,可能会时间超限,所以看了之前的测评记录。用一个比较巧妙的方法来计算,分类。很简单的前提就是,最大最小公倍数必然是三个尽可能大的互质的数字相乘的结果。那么需要分类:首先,如果n是1或者2时,很简单,结果是其自身如果n为奇数,那么n和n-1和n-2没有公因数,那么结果自然为n*(n-1)*(n

2021-02-24 21:12:06 93

原创 蓝桥杯JAVA练习0217-BASIC30、ALGO-1笔记

BASIC-30 阶乘计算阶乘计算这道题昨天就有了思路讲道理其实计算部分真的不难只不过对于数组不限制大小的情况我不太确定乘的循环停止在什么条件找了大佬的代码,主体思路一样但是循环结束条件理解不了所以干脆加到最大最后逆序输出的时候把开头0全部去掉就好但是我担心超时同时还有我单纯考虑了n是个位数的情况,但是好像10也成功了所以就想着能拿一分拿一分结果居然过了……codeimport java.util.Scanner;public class Main { public sta

2021-02-17 20:52:05 70

原创 蓝桥杯JAVA练习0216-BASIC28-29笔记

BASIC-28 Huffuman树Huffuman树原理很简单,每次都加最小的两个数字就可以首先把数组从小到大排序把最小的两个数字a[0]和a[1]相加,和放在a[0]的位置从a[1]往后每个数字都前移再排序,继续……需要注意排序的范围,因为实际上数组的最后永远会有初始数组中最大的数字所以sort的范围需要每次改变我的错误出现在把sum(所有和)和a[0](两个较小数字的和)弄混了阴差阳错过了样例但是有所有测试点没有通过最后发现哈夫曼树的总费用需要每次的a[0]都加一遍解决co

2021-02-16 20:39:59 74

原创 蓝桥杯JAVA练习0215-BASIC24-26笔记

BASIC-24 龟兔赛跑预测龟兔赛跑预测好像去年做的时候印象深刻所以先不着急挑出几个特殊情况,比如路程比兔子领先休息的路程短比如兔子休息完第一次乌龟也追不上,那乌龟永远追不上……然后我就不知道怎么写了麻了所以找了去年的代码来看另辟蹊径不用数学方法,时间按秒数自增计算每时刻的路程变化然后我发现有一个测试数据没通过原因出现在兔子休息的计算过程原方法是在兔子休息时乌龟路程增加,时间加快到兔子休息完毕错误应该是乌龟的到达时间不准确更改为从兔子休息的那一刻起,兔子突然减少自己休息时

2021-02-15 20:59:29 124 1

原创 蓝桥杯JAVA练习0214-BASIC21-23笔记

BASIC-21 Sine之舞Sine之舞神奇的奶牛这道题主要是注意分辨公式的每个部分是什么意思调用两个函数an、sn进行每一部分的输出sn函数为整体的把控,这里需要调用an,所以可以把sn用含有an的公式表示出来,需要输出an的时候调用an函数主要难点在于an的写法我想到了递归,但是由于掌握不熟练最后还是用for循环写出来了容易出问题的地方:对于循环中的起始点为0还是1,用1的话能更好联系公式找到规律像开头结尾的括号可以单独使用for循环一次性输出codeimport java

2021-02-14 20:51:43 74

原创 蓝桥杯JAVA练习0210-BASIC20笔记

BASIC-20题目链接这道题很有意思理清思路就很容易写出来我是用了按位if条件判断坏处就在于我是写了大纲之后自己测试数据通过测试数据改自己的代码这就导致了两个问题代码分类有点乱有些情况没有考虑周到针对第一个情况,虽然代码看起来很繁琐,但是很容易看出每个判断条件的意思针对第二个情况,我开始消极应战了,就是用直接用测试数据改bug这样很不好,很不好!检讨!最后我用自己的数据检测出来好多个Bug10010 10100 500001应该是“一万零一十”、“一万零一百”、“五万零

2021-02-10 20:58:01 85

原创 蓝桥杯JAVA练习0209-BASIC18、20笔记

BASIC-18这道题很有意思矩形相交,其实就是找顶点分为两种情况讨论相交不相交其中相交的情况可以画图尝试归纳出相交矩形的对角坐标我用的是左下角和右上角找出最小和最大的比较关系很容易就得出来了记得保留小数的方法import java.text.DecimalFormat;import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-g

2021-02-09 21:08:12 102 1

原创 蓝桥杯JAVA练习0208-BASIC16-17笔记

气死我了,写一半电脑关机了……BASIC-16昨天的思路大体没错,但是为了好理解我又重写了一遍因为昨天的很繁琐所以把判断素数的函数单独拉出来了整体思路大概就是:按要求输出等式前半部分,然后把本来就是素数的分类直接输出本身,不是素数的就从2开始除,能够整除就输出,然后取商继续除,直到商不能继续除(判断商为素数)需要注意的是要把剩余的最后一个商输出,记得乘号import java.util.Scanner;public class Main { public static int isPri

2021-02-08 21:00:39 95

原创 蓝桥杯JAVA练习0207-BASIC14-16笔记

BASIC-14纯计算,很简单BASIC-15分类,用多个if-else挨个排除就很简单BASIC-16写了一会晕头转向,估计写完也会超时,眼睛疼,打算明天重写了

2021-02-07 20:35:13 83 1

原创 蓝桥杯JAVA练习0206-BASIC12-13笔记

BASIC-12经过一天的思考(不是,我晚上才开始敲代码)为了解决运行超时,做了以下改动改进一:二进制转八进制改为计算方式,而不是switch-case改进二:把原来的转换为八进制之后再删除开头的‘0’改为转化为八进制时共同进行还是不行,我生气了,决定参考一下大佬的代码最后把转换过程中的所有String类转化为StringBuffer类为什么是所有呢?因为我只改了十六转二部分的之后发现还是超时import java.util.Scanner;public cla

2021-02-06 20:45:32 94 1

原创 蓝桥杯JAVA练习0205-BASIC12笔记

BASIC-12一道让我及其想骂人的题目一开始是十六进制转十进制转八进制我就知道可能会超限但是我没想到测试数据长到不算数,就是字符串嘛所以还是转二进制,之后再转八进制然后枚举列出来最后……运行超时睡了明天再搞import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan

2021-02-05 21:21:54 105 1

原创 蓝桥杯JAVA练习0203-BASIC7-11笔记

BASIC-7    单独计算每位即可BASIC-8    一样简单BASIC-9    五位数和六位数单独讨论,依然很简单BASIC-10    十进制整型里可以直接转化为十六进制Integer.toHexString(n)BASIC-11    哇卡了半天发现我居然输出错了位置哈哈气死我了    由于我用了字符串存储输入的十六进制,因此按位读的时候需要将每一位转化为数字形式,不仅仅是A-F的字母,还有‘0’~‘9’也是以字符的形式存在的,因此每一位都需要转化。同时需要使用pow方

2021-02-03 20:45:28 81

原创 蓝桥杯JAVA练习0129-BASIC4-6笔记

BASIC-4就很简单,注意数组范围BASIC-5就依然很简单,还是数组BASIC-6就二维数组,控制第一行和每行首尾数字int a[][] = new int[36][36];然后加就完了对,今天的题目就是如此简单,为什么不多做点呢?因为我时间不够了,我还要复习单词然后就要睡觉了,为什么还要记呢?因为强迫症不想漏掉一个日期所以随便记一记,就这样,晚安♥...

2021-01-29 20:50:56 77

原创 蓝桥杯JAVA练习0128-BASIC1-3笔记

BASIC-1就很简单BASIC-2十进制整型转二进制字符串String s = Integer.toBinaryString(n);BASIC-3字符与ASCII码转换只需要char、int强制类型转换即可分析规律构成时注意长度限制,及多种情况数据测试,不要着急提交...

2021-01-28 21:00:29 81

原创 蓝桥杯JAVA练习0127-BEGIN笔记

BEGIN-2循环时间超限,直接使用等差等比数列的求和公式长整形LongBEGIN-3小数点后几位输出(例子7位) DecimalFormat dFormat = new DecimalFormat("#.0000000"); System.out.print(dFormat.format(r));BEGIN-4新建数组 int arr[] = new int[n];新建数组时尽量开大一点...

2021-01-27 20:08:15 67

原创 蓝桥杯BASIC-20 基础练习 数的读法

蓝桥杯BASIC-20 基础练习 数的读法问题描述  Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。  比如说,在对学生讲解第1234567009号位置上的碱基时,光看着数字是很难准确的念出来的。  所以,他迫切地需要一个系统,然后当他输入12 3456 7009时,会给出相应的念法: ...

2020-04-16 15:35:27 728

转载 蓝桥杯BASIC-25 基础练习 回形取数

蓝桥杯BASIC-25 基础练习 回形取数问题描述  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式  输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。...

2020-04-15 16:07:56 114

原创 蓝桥杯BASIC-24 基础练习 龟兔赛跑预测

蓝桥杯BASIC-24 基础练习 龟兔赛跑预测问题描述  话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们...

2020-04-15 15:47:01 417

原创 蓝桥杯BASIC-22 基础练习 FJ的字符串

蓝桥杯BASIC-22 基础练习 FJ的字符串问题描述  FJ在沙盘上写了这样一些字符串:  A1 = “A”  A2 = “ABA”  A3 = “ABACABA”  A4 = “ABACABADABACABA”  … …  你能找出其中的规律并写所有的数列AN吗?输入格式  仅有一个数:N ≤ 26。输出格式  请输出相应的字符串AN,以一个换行符结束。输出中不得含有多...

2020-04-14 15:20:22 169

原创 蓝桥杯BASIC-21 基础练习 Sine之舞

蓝桥杯BASIC-21 基础练习 Sine之舞问题描述  最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。  不妨设  An=sin(1–sin(2+sin(3–sin(4+…sin(n))…)  Sn=(…(A1+n)A2+n-1)A3+…+2)An+1  FJ...

2020-04-14 14:57:51 135

原创 蓝桥杯BASIC-17 基础练习 矩阵乘法

蓝桥杯BASIC-17 基础练习 矩阵乘法问题描述  给定一个N阶矩阵A,输出A的M次幂(M是非负整数)  例如:  A =  1 2  3 4  A的2次幂  7 10  15 22输入格式  第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数  接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的...

2020-04-13 14:50:29 156

原创 蓝桥杯PREV-21 历届试题 回文数字

蓝桥杯PREV-21 历届试题 回文数字问题描述  观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。  本题要求你找到一些5位或6位的十进制数字。满足如下要求:  该数字的各个数位之和等于输入的整数。输入格式  一个正整数 n (10<n<100), 表示要求满足的数位和。输出格式  若干行,每...

2020-01-29 12:40:06 271

原创 蓝桥杯 ALGO-124 算法训练 数字三角形

蓝桥杯 ALGO-124 算法训练 数字三角形问题描述  图示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大。  ●每一步可沿左斜线向下或右斜线向下走;  ●1<三角形行数≤100;  ●三角形中的数字为整数0,1,…99;  输入格式  文件中首先读到的是三角形的行数。  接下来描述整个三角形输出格式  最大总和(整数)样例...

2020-01-28 16:26:00 175

原创 蓝桥杯PREV-1 历届试题 核桃的数量

蓝桥杯PREV-1 历届试题 核桃的数量问题描述  小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:  1. 各组的核桃数量必须相同  2. 各组内必须能平分核桃(当然是不能打碎的)  3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式  输入包含三个正整数a, b, c,表示每个组正在加班...

2020-01-27 12:18:10 247

原创 蓝桥杯ALGO-53 算法训练 最小乘积(基本型)

蓝桥杯ALGO-53 算法训练 最小乘积(基本型)问题描述  给两组数,各n个。  请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。  例如两组数分别为:1 3 -5和-2 4 1  那么对应乘积取和的最小值应为:  (-5) * 4 + 3 * (-2) + 1 * 1 = -25输入格式  第一个行一个数T表示数据组数...

2020-01-21 13:03:39 203

空空如也

空空如也

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

TA关注的人

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