自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

孤舟一叶~的博客

总结Java知识

  • 博客(131)
  • 收藏
  • 关注

原创 力扣题目:机器人能否返回原点

题目思路很简单,只要L数量等于R,U的数量等于D。

2024-05-12 17:22:28 235

原创 力扣每日一题-收集垃圾的最少总时间-2024.5.11

【代码】力扣每日一题-收集垃圾的最少总时间-2024.5.11。

2024-05-11 09:41:48 220

原创 力扣每日一题- 给植物浇水 II -2024.5.9

根据题目内容,使用双指针从左右两边同时向中间移动,模拟浇水过程即可。

2024-05-10 09:04:04 299

原创 力扣每日一题-统计已测试设备-2024.5.10

根据题目内容,第一感是根据题目模拟整个过程,在每一步中修改所有设备的电量百分比。但稍加思索,发现可以利用已测试设备的数量作为需要减少的设备电量,这样,就省去了大量重复的计算操作。

2024-05-10 08:57:13 357

原创 IDEA中向Data Sources导入sql文件

在学习黑马的课程时,时常需要向数据库中导入sql文件生成数据库表,每次都会忘记导入步骤,折腾许久,于是将过程记录下来。

2024-05-07 20:16:55 952 1

原创 力扣每日一题-去掉最低工资和最高工资后的工资平均值-2024.5.3

先利用sort排序对数组进行从小到大排序,然后计算时数组最小值和最大值不要加进去即可。

2024-05-06 19:36:07 193

原创 力扣每日一题-拆炸弹-2024.5.5

根据代码实现分为k等于0和k不等于0的情况。k等于0很容易处理,而k不等于0时,需要使用滑动窗口的方式来解决。先根据小于0或大于0确定一个窗口,然后移动,获取修改后该位置的值,直到整个数组修改完毕。

2024-05-06 19:31:30 610

原创 力扣题目:查找共同字符

使用哈希表,记录每一个字母出现的次数,每次更新最小值,寻找最小值不为0到字母,添加到list列表中。

2024-04-29 18:10:13 202

原创 力扣题目:寻找数组的中心下标

根据题目内容,维护好前后缀和,然后从左到右遍历寻找合适的下标。

2024-04-29 16:28:12 397

原创 力扣每日一题-总行驶距离-2024.4.25

直接用数学模拟计算即可。

2024-04-27 18:01:05 329

原创 力扣每日一题-查询网格图中每一列的宽度-2024.4.27

双层for循环遍历整个矩阵容易想到,只要能想到使用整数转字符串的技巧(“” + 字符串),即可完成题目。

2024-04-27 17:43:07 397

原创 力扣题目:独一无二的出现次数

根据题目要求,可以使用哈希表来统计每个数字出现的次数,然后利用set集合的特性(不能添加重复的元素)来判断是否出现重复次数。

2024-04-26 11:49:20 217

原创 力扣题目:轮转数组

根据从轮转前到轮转后到数组变化,我们可以将数组元素分成两个部分,一个部分数轮转后从右边调到前面,一部分仅仅从左边向右移动。发现这个规律后,将数组分成两部分处理,即可解决问题。

2024-04-26 11:37:24 327

原创 DFS和回溯专题:全排列 II

【代码】DFS和回溯专题:全排列 II。

2024-04-25 21:49:21 294

原创 DFS与回溯专题:全排列

也可以利用list.contains()方法来判断是否被使用,但这种方式会耗费较多时间。所以最好用前面的方法,已空间换时间。回溯问题中的全排列,相对比组合、子集等问题,其元素可以颠倒顺序,所以在for循环中每层都是从头开始,无需标记更新起始位置。

2024-04-25 21:03:44 780

原创 DFS与回溯专题:非递减子序列

这道题关键是排除重复的子序列,同一父节点下的同层上使用过的元素就不能再使用了。

2024-04-24 11:40:27 236

原创 DFS与回溯专题:子集 II

套用回溯的模版,同时要进行剪枝,在同一层中遇到多个相同的元素,使用第一个后跳过后面相同的元素。

2024-04-24 11:11:40 534

原创 DFS和回溯专题:子集

因为题目要求的是数组所有可能的子集,所以通过回溯遍历出来的所有结果都可以添加到结果列表中,代码直接套用回溯模版即可。

2024-04-23 16:54:35 259

原创 DFS与回溯专题:组合总和II

【代码】DFS与回溯专题:组合总和II。

2024-04-23 09:16:30 267

原创 DFS和回溯专题:组合总和

【代码】DFS和回溯专题:组合总和。

2024-04-22 17:05:58 214

原创 DFS与回溯专题:组合总和III

【代码】DFS与回溯专题:组合总和III。

2024-04-22 15:19:02 381

原创 DFS与回溯专题:组合

同时,循环停止的条件,最普通就是用题目给的n。然后参考代码随想录,发现是可以剪枝的。一共需要组合5个数,当你已经确定了前3个数,那第4个数最多只能搜索到9,因为至少要留个10给第5个数。这样,每次循环时都可以进行剪枝。该题为经典回溯问题,题目要求k个数来组合,则利用回溯来进行k层for循环。为了防止重复遍历,要用start参数标记每次for循环遍历的起点。

2024-04-20 16:48:32 219

原创 DFS与回溯专题:电话号码的字母组合

将数字到字母的映射用字符串数组表示出来。然后利用回溯算法,解决n个for循环的问题,枚举出每一种符合要求的情况。这样会导致num在循环中重复加很多次,导致递归时出现问题。

2024-04-20 10:43:08 191

原创 DFS与回溯专题:二叉树的最大深度

设置两个变量,max来记录最大值,sum来记录路径的节点数量。利用dfs对二叉树进行搜索,遇到节点,则sum+1;遇到叶子节点,则将max与sum进行比较,取最大值。

2024-04-19 09:34:35 221

原创 DFS与回溯专题:路径总和问题

对二叉树进行dfs搜索,递归计算每条路径的节点值之和,当某个节点的左右子节点都为空时,说明已经搜索完成某一条路径,将它与目标值进行比较,若相等,则为true。路径恢复: 向上回溯前,需要将当前节点从路径 list 中删除,即执行list.remove(list.size() - 1)。为什么要写list_all.add(new ArrayList(list)),而不是list_all.add(list)?注意:解释里面的sum.add(path)就是list_all.add(list)

2024-04-19 09:10:19 819

原创 DFS与回溯专题:力扣岛屿问题合集(持续更新)

每次做到DFS相关的题目都是直接跳过。蓝桥杯过后痛定思痛,好好学习一下DFS和BFS。先从DFS开始吧。

2024-04-15 16:10:27 690

原创 macbook(m1) ubuntu下载,复制粘贴和国内镜像源配置

官网下载打开后根据电脑的架构选择安装包,想要下载其他版本也可在官网中自行搜索。我安装时舍友说他安装的是22.04这个版本,我也就跟着他安装了注意:下载的版本最好有对应版本的国内镜像源(阿里,清华等),否则以后使用时可能很麻烦。点击链接,往下找看到阿里的ubuntu镜像源有22.04版本的,稳啦由于之前安装过win11和centos7,所以虚拟机软件的安装流程已经没什么印象,对ubuntu的安装在此也不赘述了,有需要的可以前往下面链接,我也是根据下面大佬的步骤完成安装的。

2024-04-02 16:18:36 1046

原创 ip地址改变导致nacos无法登录的解决方法

在做黑马的springcloud课程里的黑马商城微服务项目时,发现使用nacos的默认账号密码(nacos,nacos)无法登录,项目里也没报错信息,虽然猜测和ip地址改变有关,但还是折腾了几个小时。最后看到b站的评论区,参考了建议,才解决了问题。

2024-03-28 15:16:27 517 1

原创 MybatisPlus知识点总结(基于黑马2023MybatisPlus课程)

我们可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分。上图的mp代码有部分是在Service层编写当where条件外的部分没有办法用mp更方便地实现,只能在业务层(Service)拼接,而这样违背了企业开发的规范,就会用到自定义SQL需求:将id在指定范围的用户(例如1、2、4 )的余额扣减指定值步骤1.基于Wrapper构建where条件2.在mapper方法参数中用Param注解声明wrapper变量名称,必须是ew。

2024-03-09 16:26:19 1055 1

原创 Mybatis知识点总结(基于黑马2023javaweb课程)

1.数据库连接池是个容器,负责分配、管理数据库连接(Connection)2.它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个3.释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏。

2024-03-09 15:54:45 980

原创 力扣每日一题-最长交替子数组-2024.01.23

 今天的力扣打卡题是道简单题,写完立刻就发出来啦。 这道题可以简单地用双层循环来解决,外层循环遍历整个数组,内层统计满足要求的子数组的长度。判断的时候注意先1再-1再1的循环次序即可。结语 如果这道题的分享对您有所帮助,点个赞或关注,我会每天更新力扣题目的分享。

2024-01-23 09:46:50 475 1

原创 力扣每日一题-最大交换-2024.01.22

 好久没有更新力扣的每日一题了,今天刚好先做了这道题,就发一下吧。  这道题用了贪心的思想,在交换的时候,要选择交换后最大的值。  首先,要创建两个数组,一个正常记录值为arr1,一个利用sort排序排好为arr2。然后从高位开始对比,比较出第一个不相同的数字,这个数字的位置就是需要变换的第一个位i,  而第二个要变换位置的地方,其数值为第一个不相同的数字中arr2的值。根据最大化的要求,我们要尽量从低位寻找这个值,所以从arr1低位开始寻找,找到后进行交换即可。结语  如果这道题的分享对您有所帮助

2024-01-22 09:42:17 398

原创 算法通关村第十七关—贪心其实很简单(青铜)

LeetCode455,分发饼干:假设你要给孩子们一些小饼干。但是每个孩子最多只能给一块饼干。每个孩子的饭量不同,对每个孩子ⅰ,都有一个胃口值9[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果s[j]>=g[i],我们可以将这个饼干j分配给孩子ⅰ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例:其中g是胃口,s是拥有的饼干。首先对g和s进行排序。然后从小到大遍历g中的每一个元素,对于每个元素找到能满足该元素的s中的最小元素。

2024-01-17 17:08:06 379 1

原创 算法通关村第十六关—滑动窗口经典问题(白银)

LeetCode3给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。要找最长子串,必然要知道无重复字符串的首和尾,然后再从中确定最长的那个,因此至少两个指针才可以,这就想到了滑动窗口思想。定义一个K-V形式的map,key表示的是当前正在访问的字符串,value,是其下标索引值。我们每访问一个新元素,都将其下标更新成对应的索引值。

2024-01-15 22:31:33 1117 1

原创 算法通关村第十四关—数据流的中位数(黄金)

相当于,把所有元素分成了大和小两半,而我们计算中位数,只需要大的那半的最小值和小的那半的最大值即可。比如,我们依次添加[1,2,3,4,5],砍成两半之后为[1,2]和[3,4,5],我们只要能快速的找到2和3即可。Java中的堆(即优先级队列)是使用完全二叉树实现的,我们这里的图也是以完全二叉树为例。小顶堆(minHeap):存储所有元素中较大的一半,堆顶存储的是其中最小的数。大顶堆(maxHeap):存储所有元素中较小的一半,堆顶存储的是其中最大的数。[2,3]的中位数是(2+3)/2=2.5。

2024-01-15 08:29:13 398 1

原创 算法通关村第十五关—继续研究超大规模数据场景的问题(黄金)

题目要求:假设你有一个20GB的文件,每行一个字符串,请说明如何对这个文件进行排序?分析:这里给出大小是20GB,其实面试官就在暗示你不要将所有的文件都装入到内存里,因此我们只能将文件划分成一些块,每块大小是xMB,x就是可用内存的大小,例如1GB一块,那我们就可以将文件分为20块。我们先对每块进行排序,然后再逐步合并。这时候我们可以使用两两归并,也可以使用堆排序策略将其逐步合并成一个。相关方法我们在《查找》一章的堆排部分有介绍。这种排序方式也称为外部排序。

2024-01-14 21:36:38 973

原创 算法通关村第十五关—海量数据场景下的热门算法题(白银)

题目要求:给定一个输入文件,包含40亿个非负整数,请设计一个算法,产生一个不存在该文件中的整数,假设你有1GB的内存来完成这项任务。进阶:如果只有10MB的内存可用,该怎么办?本题不用写代码,如果能将方法说清楚就很好了,我们接下来一步步分析该如何做。

2024-01-14 21:20:29 848

原创 算法通关村第十五关—用4KB内存寻找重复元素(青铜)

分析:本身是一道海量数据问题的热身题,如果去掉“只有4KB”的要求,我们可以先创建一个大小为N的数组,然后将这些数据放进来,但是这里数组最大为32KB,而题目有4KB的内存限制,我们就必须先确定该如何存放这个数组。题目要求:给定一个数组,包含从1到N的整数,N最大为32000,数组可能还有重复值,且N的取值不定,若只有4KB的内存可用,该如何打印数组中所有重复元素。2^10个比特,这个值比32000要大的,因此我们可以创建32000比特的位向量(比特数组),其中一个比特位置就代表一个整数。

2024-01-14 20:35:24 408

原创 算法通关村第十六关—滑动窗口与堆结合(黄金)

每当我们向右移动窗口时,我们就可以把一个新的元素放入优先队列中,此时堆顶的元素就是堆中所有元素的最大值。然而这个最大值可能并不在滑动窗口中,在这种情况下,这个值在数组nums中的位置出现在滑动窗口左边界的左侧。因此,当我们后续继续向右移动窗口时,这个值就永远不可能出现在滑动窗口中了,我们可以将其永久地从优先队列中移除。为了方便判断堆顶元素与滑动窗口的位置关系,我们可以在优先队列中存储二元组(num,index),表示元素num在数组中的下标为index。滑动窗口每次只向右移动一位,返回滑动窗口中的最大值。

2024-01-14 20:25:50 560

原创 算法通关村第十一关—位运算如何实现压缩存储(黄金)

位运算有个很重要的作用就是能用比较小的空间存储比较多的元素。能帮助我们解决一些海量场景下的数据处理问题。本关内容与第15关《超大规模数据场景常见问题》的青铜挑战是一样的,你可以先思考一下位运算是如何解决问题的。

2024-01-13 20:46:42 382

空空如也

空空如也

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

TA关注的人

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