自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot + Mybiatis - Hotel Booking System

该内容为本学期的课程作业,针对于该系统的架构和内容做一个记录和总结,方便后续进行回顾~

2024-06-15 16:01:45 276 2

原创 leetcode 二刷:27.移除元素 977.有序数组的平方

题目的解题思路和之前的没有太多的变化,但是在进行题目的重复理解时,发现在以[3,2,2,3]为例子的这个case中,fast是先进行移动,同样也是先到达末尾,有一点绕晕的是,当slow指向index=2时,所指向的2不会也被存储进去而产生错误吗?根据题意的描述可知,数组首先是非递减,所以在进行平方后,最大的元素所出现的位置不是在头就是在尾。当slow指向index=2的位置时,fast在index=3的位置,由于此时的fast所得到的值=val,所以根本不会赋值给slow所产生的数组。

2024-03-12 22:05:20 451

原创 leetcode 34:在排序数组中查找元素的第一个和最后一个位置

1.target不在数组所包含的范围内,target比左边界小或者比右边界大。根据以上三种情况,可以首先定义所对应的边界值,然后在进行归类判断。2.target在数组所包含的范围内,但数组中不存在该数值。同理,判断右边界时,target在数组的左边,才会有右边界。3.target在数组所包含的范围内且数组中存在该值。属于数组问题,该问题为二分类问题,也是需要找到。根据所得出的左右边界值再进行分情况讨论即可。

2024-03-04 15:47:32 490

原创 基于opencv缺陷检测项目实战(b站)

在所给出的代码的基础上我选择了中值滤波器进行了检测,效果没有高斯滤波器好,猜测原因为中值滤波器是线性卷积核,而高斯滤波器为非线性。该项目猜测属于opencv入门级项目,通过该项目熟悉了代码的相关用法以及模块的具体含义,其中封装了大量的可直接调用的包,操作起来较为简单。3.main函数理解:文件梳理了全部的流程,最终将所有步骤中所获得的图片进行整合,输出缺陷检测的个数以及图片。2.针对于轮廓检测进行了知识储备,掌握了简单的opencv用法,实现了手套的缺陷检测。3.有缺陷,缺陷不容易识别(缺陷不明显)

2024-03-03 15:34:12 942

原创 Deep Learning with Python -- 第八章总结

LSTM在之前的处理文本序列(第六章)已经介绍过,作者在这章仍旧使用LSTM层,想起输入从文本语料中提取的N个字符组的字符串,训练模型来生成第N+1个字符。上述为字符级的神经语言模型。贪婪采样:始终选择可能性最大的下一个字符。随机采样 :在采样过程中引入随机性,即从下一个制度的概率分布中采样。

2024-01-27 21:08:09 1005

原创 Deep Learning with Python -- 第七章总结

EarlyStopping:当监控的目标指标在设定的轮数内不在改善,使用该回调函数可以中断训练。ModelCheckpoint:在训练过程中不断的保存模型。

2024-01-26 11:33:34 1021

原创 Deep Learning with Python -- 第六章总结

本章主要围绕深度学习模型处理文本数据、时间序列数据进行展开,介绍了两种新的模型,即循环神经网络(RNN)和一维卷积神经网络(1D Convet),并和第五章的模型结合进行训练。

2024-01-24 18:16:17 777 1

原创 Deep Learning with Python -- 第五章总结

数据集来源于Kaggle猫狗识别竞赛,具体的数据集可以在Kaggle中进行下载,数据集中包含了12500张猫和12500张狗的图像,针对于上述数据集,从中各选择了1000张作为训练集,500张作为验证集、500张作为测试集。将数据集上传到Google Colab中,连接Drive进行加载,进行图片的复制和文件夹的创建。

2024-01-21 15:19:58 1021 1

原创 AttributeError: module ‘PIL.Image‘ has no attribute ‘Resampling‘报错解决

但是发现还是对于NoneType进行报错,之前进行了pillow包的更新,不知道是什么原因还是没有找到。再次尝试对于pillow进行更新。发现出现该报错,一开始在网上找的解决办法针对到具体的包的内容进行的引用,该问题出现在利用easyocr的时候,准备进行图片中文字的识别。出现该报错,完善更新命令,添加--user,更新成功!

2023-09-25 21:42:56 2561 1

原创 贪心算法part01|455.分发饼干 376. 摆动序列 53. 最大子序和

假设i为s中的,index指向g中,则依照代码,是从后开始往前遍历。i假如不能满足最后一个小孩的胃口值,则index永远固定在最后一个,result永远为0!局部变量先利用小饼干满足胃口小的小孩,注意此时index从前面进行索引,index指向g,i指向s进行遍历即可。2.依照题意,首先想到利用大饼干满足胃口大的孩子--局部最优,喂饱尽可能多的孩子--全局最优。3.遍历两个数组,首先想到利用两个for循环,但可以用index进行优化。1.孩子只能有1块饼干,并且需要输出可以满足孩子数量的max值。

2023-09-25 21:36:33 215 1

原创 回溯算法part6|332.重新安排行程 51. N皇后 37. 解数独

332.重新安排行程 51. N皇后 37. 解数独。332已做,51和37二刷的时候再进行,难度较大。

2023-09-17 21:07:04 115 1

原创 代码随想录Day29|491.递增子序列 46.全排列 47.全排列 II

当进行元素的遍历后,为避免在同一个元素中进行重复选取,在后续的元素中进行选择,需要对于used进行限制。该语句的含义是当前元素已经取过,后续将跳过该元素进行其他元素的选取。1.题目中所说的找出数组中不同的递增子序列,因此原有的数组顺序不能进行更改,否则会导致不同的结果出现。1.与组合不同的地方在于,排列在意数组中的顺序,针对于数组中相同元素但是不同顺序也需要添加。5.要取得为每个节点中的符合要求的节点,而非最终节点,所以在if条件时要剔除return。1.与46不同的是,该序列中包含重复数字;

2023-09-17 11:41:40 185 1

原创 代码随想录Day28|回溯part04--● 93.复原IP地址 ● 78.子集 ● 90.子集II

代码借鉴的卡哥的,一刷独立完成还是有难度的。比较巧妙的点一是利用IP地址中的“.”来进行终止条件的判断;题目相对于上一个分割会有一些复杂,需要注意的细节比较多,但是套路基本一致。与上一道题不同之处在于,该题目所给出的子集中存在重复元素,所以在树结构中需要进行去重操作。去重操作和分割题目中相同,采用used数组进行标注和筛选。首先绘制树结构,发现与几何不同的是,子集部分所有的叶子结点均需保留,不用做。同时针对于不能包含重复的子集,需要进行索引加一的操作。需要注意的是,输出中需要保留[ ]以及自身,

2023-08-23 15:47:36 68

原创 代码随想录Day27|--回溯算法 39. 组合总和● 40.组合总和II● 131.分割回文串

此时我们需要想到,要保留树枝,去重树层,利用used来去重即可。在审题时,虽然注意到了题目的意思是在candidates中每个数字在集合中值出现一次,存在candidates中元素重复情况的存在,但是在解题时还是掉进了该陷阱中。我们在进行树结构的绘制的时候,所规定的index便不需要+1,因为元素可以重复。针对于该题目,我们首先需要的就是对于数组进行排序,使得在树结构的同一层中不存在重复元素, 在叶子结点可以有相同元素,这样可以防止重复组合的出现。在该题中,比较抽象的就是在进行去重,如何去重以及去重什么?

2023-08-15 13:53:35 92 1

原创 代码随想录Day25|回溯算法part02--216.组合总和III● 17.电话号码的字母组合

经过剪枝处理,主要考虑:1.当初始时,单个元素的值大于所要求的元素(k=4,9>4);2.集合个数,所剩余的元素不满足所要求的个数,直接进行后面的剪枝。4.回溯中的for循环可以进行化简,由于第一次刷该题,采用更为直白的步骤,方便后续复习。3.index用来表示遍历到哪个字符了,方便对于元素进行引用以及后续回溯操作。2.self.s用来存储中间存放的元素,为全局变量需要事先声明。未经过剪枝处理,思路和77.组合一样,主要是将树结构画出来。1.映射操作,利用字典进行处理。

2023-08-08 16:47:05 84

原创 代码随想录Day24|回溯算法--77.组合

解决回溯问题,将其抽象为树结构来理解方便一些。可以看为横向for循环,纵向递归来解题,按照卡哥在总结中介绍的模板解题。

2023-08-07 16:33:34 182 1

原创 代码随想录第十五天|层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2

利用递归操作进行解答,思路如下:1.判断根节点是否为空;2.按层遍历,题中代码比较难想到的部分是len(levels)==level,利用这个来区分层,思路很巧妙。levels是二维数组,里面包含的level是一维数组,将二维数组首先分配空间,然后在填充内部的数据。3.单层循环结束,左孩子右孩子思路相同,可以开始进行递归操作。利用队列进行解答,由于按层遍历是先进先出,可以想到队列,大体思路类似。for循环可以再进行优化,在进行逐层添加是进行累计计算。

2023-08-03 16:49:30 58

原创 代码随想录第十四天|二叉树基础部分,leetcode144,145,94

1.确定递归函数的参数和返回值。3.确定单层递归的逻辑。

2023-07-27 15:17:41 54 1

原创 代码随想录第十三天|239. 滑动窗口最大值 347.前 K 个高频元素

一刷,主要是针对于视频思路进行了解,解题关键为三个:pop()、push()和get_max_value(),在思路中需要想明白需要维护什么,弹出什么和删除什么。一刷,核心是构建大根堆和小根堆。首先需要明白构建大根堆小根堆是依据元素出现的频率来构建,即大根堆的顶端是出现频率最高的元素,小根堆的顶端是出现频率最低的元素。由题意可知,我们所要寻找的是出现频率最高的前k个元素,因此我们需要构建小根堆,如果出现元素个数>k,则需要弹出小根堆顶端元素。

2023-07-24 16:29:56 323

原创 代码随想录第七天|454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

该题目可以按照15.三数之和来进行解决,但需要注意去重和剪枝操作。上述代码利用字典进行,有点像四数相加,但是需要注意i、j、k不能相等,所以在循环中需要+1。另外,也是利用了先统计数字出现的频率作为值,再利用值找到所对应的下标进行统计。1.nums[i] == nums[i-1],如果为i+1,则i+1为left,不符合三个元素之和的题意要求。注意,nums[i]==value 容易忽略出错,要确保没有重复!3.考虑去重操作,即[0,-1,-1,-1,1,1,1]如何处理。暴力解法,但力扣会超时。

2023-07-19 22:14:17 150

原创 代码随想录第六天|242.有效的字母异位词 349. 两个数组的交集 202. 快乐数1. 两数之和

首先利用table来存放所获得的数值并进行统计,如果num2中存在已经存放在table中的值,则为两个数组的交集。下图以hello字符进行举例,对于for循环,其[]中的x值的是字符串的字符,需要理解其工作原理。2.不是快乐数==中间结果重复出现,此时问题可以转化为判断元素是都在集合中出现,考虑hash,由于数据量大,所以采用set()来解决问题。同时,collections中的Counter()函数也可以帮助解决该问题,在此不再赘述,可以参考下面链接中的使用方式进行尝试。非暴力解法,采用字典来进行解题。

2023-07-19 09:23:29 51

原创 代码随想录第四天|24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II

此题巧妙之处在于利用双指针,n作为快慢指针的间距来解决,delete操作首先需要确定删除元素的前一个位点,然后在将前一个位点指向删除元素的后一个位点进行解决。只考虑了tmp,没有想到tmp1,tmp1如果不进行暂存,在更改了"2"的指针后无法找到“3”的位置,会造成超时;卡哥视频中说讲的是n+1,但是原理相同,都是以NULL作为临界执行相应的条件;开始写代码没有考虑到:while的条件,在分奇数偶数的情况下均需要满足;

2023-07-17 23:21:51 168 1

原创 代码随想录第三天|203.移除链表元素 707.设计链表 206.反转链表

若cur放在index位置上,前面一位的元素无法进行表示(单链表),因此我们需要将cur放在index前面一位上,利用for循环进行判断,插入操作类似addAtHead()函数。此时,存在一个问题:翻转后,cur.next = pre,原本的cur.next值无法保留,我们无法进行后续的翻转工作。(1)起始位置如图所示,cur表示头结点,pre表示头结点前面的一个位置。3.addAtTail():需要先确定cur的位置在进行插入操作,利用for循环,cur.next=NULL,依据此条件进行判断。

2023-07-14 18:18:26 231 1

原创 代码随想录第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

数组在平方后两端大,中间值小的特征,所以将双指针放在两侧进行大小比较,开辟一块新的空间存放,以空间换时间,降低时间复杂度。在进行“最小”长度得出后,需要起始指针进行移动,在总和中需要减去之前所包含的值。代码中,[float('INF')]*len(nums) 即 将空间进行分配,由于我们是在数组中倒着存放,需要预先分配一块存储空间以供使用。难点:1.for循环j所指向的为终止指针,若为起始指针,代码中的思想和两层for循环一样。思路:看到题目首先想到暴力解决该问题,针对于数组进行平方后排序进行解答。

2023-07-13 22:51:26 83 1

原创 代码随想录算法训练营第一天 |704. 二分查找、27. 移除元素

2.left + (right - left)是防止int类型数据溢出,因为left+right可能是一个比32bit大的数,先求差再加left可以防止溢出;2.right = len(nums):由于“左闭右闭”右侧可以取到,所以应-1,而“左闭右开”情况下不能取到,应进行修改,否则会超时。同时,由于两端均可取到,在考虑if条件时,括号中内容已经取到,在后续的语句中刨除该值。1.左闭右开时,右侧不能取到,故left!双指针解法:进行遍历,从第一个元素开始查看,若不是需要移除的元素,则保留;

2023-07-12 15:50:06 442 1

原创 java入门--(1)利用记事本进行HelloWorld代码的编写

该文章为在学习尚硅谷课程中的一些记录和心得,方便对于java知识的理解和后续的回顾。如果有什么不正确的地方,欢迎各位大佬指正,谢谢。一、步骤阐述1.创建记事本(我将该记事本命名为HelloWorld)--将后缀名改为.java文件--打开记事本进行相应内容的编写2.在其中编译下面的内容,进行保存即可。(需要注意的是:大小写问题和分号,Java严格区分大小写)class HelloChina{ public static void main(String[] args){ Sys

2022-01-18 11:10:38 1867

空空如也

空空如也

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

TA关注的人

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