自定义博客皮肤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)
  • 收藏
  • 关注

原创 3261. 统计满足 K 约束的子字符串数量 II

最初的想法,是使用昨天的双指针,进行一个一个子查询的计算获得满足条件的子串的数量,再返回。i是r+1和right[l]中较小的那个,right[l]记录的是满足条件的右边界。如果l 到 i都是满足条件的 (i - l + 1) * (i-l) / 2。于是查看题解,通过了前缀和数组来进行优化。i到r+1再通过前缀和数组做差来计算。但是无法通过所有测试用例。时间复杂度:O(n+q)空间复杂度:O(n)

2024-11-13 11:03:41 274

原创 3258. 统计满足 K 约束的子字符串数量 I

先是直接枚举子串的长度,然后再枚举子串的起点终点 判断满足要求的所有子串即可,时间复杂度会很高,但是这题的用例也可以过。以 r 为右端点的合法子串,其左端点可以是 l …一共是 r - l + 1个加入到答案中。双指针的思路 枚举右端点 统计个数。如果个数都超过了k 则移动左端点。时间复杂度:O(n)空间复杂度:O(1)

2024-11-12 15:33:54 362

原创 1547. 切棍子的最小成本

首先遍历长度 l 长度小于2 说明只有两点 那显然是不用切割的 默认值为0即可。固定长度 再遍历起点和终点 及中间的切割点 k 从而更新dp数组。想使用dp数组来解决,但是没有想到如何构建该数组,于是查看题解。直接回溯模拟整个过程,毫无疑问会出现超时的情况。定义dp[i][j] 表示 i到j最小的成本。时间复杂度:O(m^3)空间复杂度:O(m^2)

2024-11-11 18:46:06 282

原创 540. 有序数组中的单一元素

这题的主要思路 直接遍历 依次比较相邻两个是否相同 如果不相同直接返回。最后 high == low 此时找到的值。但是这样无法达到要求的O(log n)要达到这个时间复杂度只能二分查找了。相等 low = mid + 1。相等 low = mid + 1。比较 mid mid + 1。比较 mid mid - 1。不等 high = mid。不等 high = mid。时间复杂度:O(log n)空间复杂度:O(1)

2024-11-10 11:00:54 186

原创 3242. 设计相邻元素求和服务

两层for循环找到value的位置,根据该位置将对应的数相加,如果相邻的数字 索引越界了则不加。

2024-11-09 12:01:49 193

原创 3235. 判断矩形的两个角落是否可达

然后判断圆是否与左或上相交,相交后 判断是否和 右或下 相交, 不相交 寻找其它的圆。这题还是不会写,直接看的题解,对题解写的做了笔记,在代码中。首先判断起点 终点是否在圆里面。时间复杂度:O(n^2)空间复杂度:O(n)

2024-11-08 13:00:52 187

原创 3255. 长度为 K 的子数组的能量值 II

当cnt >= k时将此时的nums[i]加入到结果数组对应的位置中,结果数组默认都为-1。跟昨天的题目一样,只要用昨天优化后的题解就可以通过了。当后一项减去前一项等于1时,计数加1。统计数量,后一项减去前一项等于1。空间复杂度:O(n-k+1)时间复杂度:O(n)

2024-11-07 10:06:47 234

原创 3254. 长度为 K 的子数组的能量值 I

暴力枚举也可以过,我们只需要判断每个数量为k的子数组,是否满足后一项减去前一项等于1,如果都满足,则将最后一个加入到结果数组中,否则将-1加入结果中看了题解之后 也可以统计数量,刚开始也想了一下,发现了就是判断后一项减去前一项等于1但是没有想到如何进行关联赋值给答案当后一项减去前一项等于1时,计数加1当cnt >= k时将此时的nums[i]加入到结果数组对应的位置中,结果数组默认都为-1。

2024-11-06 19:17:28 262

原创 3222. 求出硬币游戏的赢家

这一题因为要凑成115,只有两种硬币 75 和 10的,那只能1个75的,4个10的,依次循环找出最后可以 拿的胜利者即可。

2024-11-05 10:27:35 219

原创 633. 平方数之和

首先判断 对c开根号如果是整数 直接返回True即可, 即。判断b是否为整数即可,如果是整数,说明可以直接返回True。遍历完所有a之后,如果没有返回,则直接返回False。时间复杂度:O( sqrt( c ) )再依次对a从1遍历到。空间复杂度:O(1)

2024-11-04 21:43:34 840

原创 3226. 使两个整数相等的位更改次数

直接循环遍历二进制数的每一位如果出现不同的数字,则进行比较,如果不相同,则判断n对应的位是否为1,为1可以进行转换,为0则不能进行直接返回-1。

2024-11-02 23:24:42 157

原创 3259. 超级饮料的最大强化能量

每一次求解,都和前一次的选择有关,是否进行选择。这题先进行模拟,发现还是存在一些问题。定义三个常量,滚动遍历一轮即可计算。看了题解之后使用动态规划求解问题。时间复杂度:O(n)空间复杂度:O(1)

2024-11-01 13:25:41 214

原创 3165. 不包含相邻元素的子序列的最大和

使用一个动态规划数组 dp,其中 dp[i] 表示考虑到第 i 个元素时,不包含相邻元素的子序列的最大和。然后根据queries依次 生成不同的序列 最后返回这个这个和相加。思路这题当然是先暴力 依次求每个子序列的最大和。需要继续优化,题解使用了线段树进行优化。先通过打家劫舍的题目来思考。

2024-10-31 10:18:26 196

原创 3216. 交换后字典序最小的字符串

因此只要从左往右遍历,因为题中说我们只能交换相邻字符,所以当相邻两个字符后一个更小,且两个字符是相同的奇偶性时,进行交换。如果两个字符串长度相同,则第一个不同字符更小的那个字典序更小。时间复杂度:O(n)空间复杂度:O(n)

2024-10-30 21:57:53 237

原创 3211. 生成不含相邻零的二进制字符串

可以直接使用回溯,这个结果很像一个树,每次只有两种选择 要么是0要么是1 根据前一个已经选择的数字,我们可以确定当前数字是选择0还是1。这个过程相当于进行了一定的剪枝操作,如果存在两个连续的0是不可以的。时间复杂度:O(n * 2^n)这个时间复杂度比较难分析。空间复杂度:O(n)

2024-10-29 16:33:03 172

原创 685. 冗余连接 II

即可。

2024-10-28 21:15:48 277

原创 684. 冗余连接

这个思路跟Kruskal 算法(加边法),最小生成树很像,其中也有一个过程并查集判断是否存在回路,因此新建parent数组表示并查集,遍历每一条边,查两个点的父元素,如果不相同,说明没有形成环路,更新parent数组,做一个并集的操作。遍历每一条边,看是否出现环路即可,如果出现了环路,则表明这个边是多余的,直接返回即可。反之相同说明已经存在环路直接返回即可。时间复杂度:O(n * log n)空间复杂度:O(n)

2024-10-27 12:00:34 342

原创 3181. 执行操作可获得的最大总奖励 II

/ f = f | ( f & mask ) << val // 取低位左移。这个量级就让题目从中等变成了困难题,需要进行优化才可以通过所有测试用例。这一题和昨天的每日一题是一样的,唯一的区别就是题目的数量级。这题需要去掉背包问题的第一个维度,并用 bitset 优化。然后左移 直接取或 即可。并没有思路,只能查看题解。

2024-10-26 21:48:36 314

原创 3180. 执行操作可获得的最大总奖励 I

最大的奖励数不可能超过2 * max,因此遍历奖励数组,当前值为x时,倒序k遍历 2 * x - 1到x,判断dp[k - x]是否可以取到,如果可以取到,那么dp[k]也可以达到,标记为1。和往常一样,先使用暴力求解,想到了回溯算法,选择了当前数字,就跳到下一个数字,形成一个树形结构来遍历所有结果集合,但是没有找到优化算法,时间复杂度比较高。定义动态数组 dp[2 * max] , max表示最大的奖励数字。没办法,只能思考动态规划的问题,没有想出来,查看题解。时间复杂度:O(n*max)

2024-10-25 14:56:42 296

原创 3175. 找到连续赢 K 场比赛的第一位玩家

这里使用数组进行记录是多余的,参考力扣题解可以直接使用一个数字记录即可,这也就是双指针,一个指针指向当前最大的下标,另外一个指向当前下标,依次从左遍历。一次for循环完成该数字的记录,然后从左到右依次与k进行比较,如果小于等于k,说明该下标位置最先满足要求,返回结果即可,否则,返回最大值的索引下标(最大值可以一直赢下去)于是记录每一个数,跟后面的数比较,当遇到比当前数字大的数时,说明此时第一个位置的数发生变化,遇到比当前数字小的数时,记录数字累加1。时间复杂度:O(n)空间复杂度:O(n)

2024-10-24 11:30:30 262

原创 3185. 构成整天的下标对数目 II

借助哈希表,两数之和的方法进行优化,统计取余24的个数,根据不同的个数来计算即可,对于余数为0和12的,分别为自身组合,此时使用等差数列求和公式。其它的余数则找到对应的 val 24-val 两个数量相乘即可。首先按照昨天每日一题的思路,能否取余24的算一种,其它的进行依次遍历,但是这样需要两层for循环,n^2的复杂度,对于今天的范围显然会超时。通过这样优化,只需要遍历一遍数组,达到O(n)的时间复杂度。空间复杂度:O(24)时间复杂度:O(n)

2024-10-23 16:00:40 310 1

原创 skywalking学习

本文主要介绍最近时间学习skywalking的一些内容通过学习了解了skywalking的使用,如何集成java,python等应用,k8s平台的安装部署等。

2024-06-08 15:45:21 1055

原创 kubeedge v1.17.0部署教程

本文主要介绍kubeedge v1.17.0的安装过程主要环境如下表应用版本centos7.0k8s1.28.2kubeedge1.17.0docker24.0.8centos7.0kubeedge 不同版本的部署方法会有不同的地方,k8s也是有需要注意的地方看官方文档一定要仔细,我edge端没有安装cni网络插件,导致一直无法成功连接之前看得文档和视频对应的版本都比较老了,edge端不需要安装cni插件也可直接连接成功。

2024-06-05 22:19:12 2355 3

原创 mybatis的association标签传多个参数

mybatis的association标签传多个参数,(传递自定义参数)这里使用association传递参数 column="{bankId=id,type=type}"中可以写多个参数这里的id type是来自于数据库的查询的题库中需要统计选择题,判断题,多选题的数量我们需要自定义type类型 这时候发现直接写是不识别的 因为column中的参数来自select id ,type form table这样的getCount(bankId,type) // 统计题目的数量。

2023-03-03 15:39:05 2219

原创 java fx 报错 java.lang.instrument ASSERTION FAILED ***: “!errorOutstanding“ with message transform

在javafx中遇到的错误在fxml中通过了fxcontroller绑定了控制器在控制的controller里面使用了FXMLLoader.load获取这个fxml文件出现报错。

2022-07-30 22:10:21 11054 1

原创 vscode 配置 c / c++环境

c / cpp vscode 使用入门地址第一个下载解压 之后将bin目录添加到用户环境即可需要安装两个插件 c/c++ 和 code runnercode runner可以让右上角的运行图标出来 (没安装的可以按F5运行)安装好上面的两个插件就可以使用了设置了这个run in rerminal才可以 用scanf这样的函数输入这样才不会中文字符乱码...

2022-07-12 12:53:27 352

原创 springboot记录日志

springboot记录日志springboot自带了日志,有一个默认使用的: spring-boot-starter-logging默认使用的是slf4j和logback我们只需要更改我们的设置,就可以直接使用了srpingboot中配置 logback的文件 在resouse下加入logback-spring.xml<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> &l

2022-04-30 16:02:17 1023

原创 762. 二进制表示中质数个计算置位

力扣刷题记录模拟762. 二进制表示中质数个计算置位思路循环遍历范围内的数,统计二进制中含一的个数,判断是否为质数代码class Solution { public boolean isPrime(int x){ // 判断x是否为质数 if(x == 1 || x == 0){ return false; } for(int i=2;i < x;i++){ if(x % i

2022-04-05 11:35:13 104

原创 easycode 模板

easy模板1.entity带lombok的entity.java##引入宏定义$!define##使用宏定义设置回调(保存位置与文件后缀)#save("/entity", ".java")##使用宏定义设置包后缀#setPackageSuffix("entity")##使用全局变量实现默认包导入$!autoImportimport java.io.Serializable;import lombok.AllArgsConstructor;import lombok.Dat

2022-03-31 11:37:25 166

原创 springboot整合swagger3和swagger-ui-layer

springboot整合swagger3和swagger-ui-layer1.引入jar包 <!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version&g

2022-03-29 23:00:08 985 1

原创 2024. 考试的最大困扰度

力扣刷题记录滑动窗口2024. 考试的最大困扰度思路像这种连续的,我们要想到滑动窗口,通过记录窗口的最大值,固定一个字符在窗口中大小不能大于k,这样分别计算就能得到连续的最大值代码class Solution { public int maxConsecutiveAnswers(String answerKey, int k) { //滑动窗口,我们记录最大值 维护一个大小为k的字符T或者F的窗口 return Math.max(getCnt(answer

2022-03-29 11:07:39 288

原创 96. 不同的二叉搜索树 (卡塔兰数)

力扣刷题记录动态规划96. 不同的二叉搜索树思路我们固定一个节点,那么左右子树的分布情况为n-1=n-1 + 0 = n-2 + 1 = … = 1 + n-2 = 0 + n-1。此时递归表达式为f(n) = f(n-1) + f(n-2)f(1) + f(n-3)f(2) + … + f(1)f(n-2) + f(n-1)这就是卡塔兰数,我们通过固定一个节点,来递归找寻它的左子树,右子树有了递归式我们就可以很简单dp了也可以用下面的公式计算代码class Solution {

2022-03-29 10:39:03 336

原创 springboot web集成shiro框架

springboot web集成shiro框架官网链接1.引入maven依赖 <!--shiro整合springboot web的自动装配包--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-web-starter</artifactId>

2022-03-28 19:39:29 584

原创 springboot整合shiro 报错

问题描述springboot整合shiro报错 @Bean public SessionsSecurityManager securityManager() { DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); securityManager.setRealm(userRealm()); // 我引入的是 s

2022-03-28 19:36:01 905

原创 168. Excel表列名称

力扣刷题记录类型名168. Excel表列名称思路特殊的26进制,我们每一位减个一就好了代码class Solution { public String convertToTitle(int columnNumber) { StringBuilder sb = new StringBuilder(); int n = columnNumber; // 就是26进制 相当于每一位都要减一 因为是从1开始 while( n !

2022-03-28 12:16:31 103

原创 171. Excel 表列序号

力扣刷题记录模拟171. Excel 表列序号思路这个要注意26进制 是从一开始的代码class Solution { public int titleToNumber(String columnTitle) { int res = 0; int pow = 1; for(int i=columnTitle.length()-1;i>=0;i--){ // 这个加一表示从一开始的26进制嘛

2022-03-28 12:12:57 88

原创 343. 整数拆分

力扣刷题记录动态规划343. 整数拆分思路动态规划五步走,dp数组怎样遍历dp数组记录拆分的乘积最大值两层for循环去获得j的拆分代码class Solution { public int integerBreak(int n) { int dp[] = new int[n+1]; //初始化dp数组dp[2] = 1 dp[2] = 1; for(int i=3;i<=n;i++){ fo

2022-03-28 12:09:48 881

原创 693. 交替位二进制数

力扣刷题记录模拟 数学693. 交替位二进制数思路这题就是简单模拟每次比较相邻两位,相同就返回false代码class Solution { public boolean hasAlternatingBits(int n) { // 根据除k取余法 // 我们每次对2取余 相邻的两次余数相等就返回false int pre = n % 2; n = n / 2; // 循环对n取余 相除 w

2022-03-28 12:05:39 92

原创 538. 把二叉搜索树转换为累加树

力扣刷题记录二叉树538. 把二叉搜索树转换为累加树思路就是二叉树的中序遍历嘛,只是顺序为右中左,左中右求得就是比他小的了代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val

2022-03-28 12:01:00 325

原创 从零搭建你的博客网站 vuepress+vercel+github

搭建静态博客网站常见的静态网站的模板有很多wordpress,vuepress等等,这里使用的是vuepress模板1.下载修改vuepress模板vuepress-theme-reco官网我这里是在github上下载的demo模板,直接在它的基础进行修改下载地址下载好之后解压,如果你想要本地运行那么你需要nodejs,我这里使用的是node14.6.0然后输入以下命令//安装依赖包npm install / yarn install //运行项目npm run dev包管理工具

2022-03-27 19:45:47 2087 2

空空如也

空空如也

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

TA关注的人

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