- 博客(29)
- 收藏
- 关注
原创 每日算法1.12
1.反转字符串:就是用常规的那个temp交换法,加上两个指针一个数组头一个数组尾,left《right就一直两两交换,一对完成后指针要往中间靠。思路1:这道题不要去理解从题目的文字去理解题目,应该记住然后想到 另一种评论区说的意思,从0开始,每经过2k,从起点开始反转以k为长度的字符串,如果有一个起点后面的字符串不够k就要全部反转(用Math。min来达成这种效果,类似一种有k就给k,没k就将就一下取末尾。
2025-01-12 16:45:17
285
原创 每日算法1.11
升序排序之后+i+双指针法:因为说非重复元组,所以要对a,(可以单独对a思考的原因是,如果已经拿过一个数字,那么满足要求的肯定会在后面把全部满足要求的都选上了,你第二次如果还选一个一样的,那么可能性后面也一样,元组就会一样。:在三数之和基础上加上了第一级剪枝,对nums【k】的如果这个数字大于target并且这个数字是正数的话就减去,因为正数的后面全是更大的正数相加的话肯定找不到比第一个小的。2.引用数据类型的变量存储的是对象的引用,多个变量可以指向同一个堆内存中的对象,从而实现数据的共享。
2025-01-11 16:25:23
200
原创 每日算法25
思想:又是查询又是暴力解法双层for的,利用hashmap这一个袋子中的contain可以随时拿出任意一个出来看的特性(一开始没有东西,可以根据题目意思往里面加东西,比如本题是map里面装的就是遍历过的数字,拿新的和遍历过的看匹配一下看下对的上不),在一个for里面实现了双层for的效果。这里需要改一下加个负号在34组之和头上,因为34组之和肯定是12组之和的相反数,但是为了得到前面放入map的12组之和的次数,所以加个负号假装去找12组之和得到value这个次数。
2024-12-25 17:17:41
334
原创 每日算法24
点3:不等同于两个数组叠层for的原因:从人类语言上理解两个都是遍历一个的时候检查另一个,但是如果是两个都是数组的时候,检查另一个的时候只能遍历检查,但是如果是hashset的时候检查另一个的时候可以直接set1.contains(i),所以不是双层for。这道题做的时候我想了一下感觉跟我之前理解的哈希表没关系啊,后面回去看了一下原来哈希表也应该指的是一种哈希方法,一种将元素通过映射到数组下标的思想,再结合本题需求 检查是否存在的时候在对应位置减去1,然后看每个位置上是否都是0就行了。
2024-12-24 16:01:35
278
原创 算法题目记录
1删除元素要求得到他在之前的元素,这是必须的,才能断线然后连线,并且建议使用虚拟头节点,但凡涉及可能操作头节点的都建议。2让快慢指针相差n+1,也就是先让快指针动n+1,然后再同时动这样满指针就会指向目标元素的之前那个,可以实验一下。面试题 找出链表相交的节点:因为相交后面全部一样,所以从后往前推,所以lenA-lenB之后开始找,可以举例理解。用hashset的contains方法可以找出set里面是否已经含有某个节点。
2024-11-25 12:19:46
146
原创 今日代码随想录
采用双指针法pre和cru ,这个得走一遍流程,流程中指向的变化建议采用抹线再连线法,这种方法便于理解 改变连线之后能否拿到某些节点 前驱与这个点的连线被断了就拿不到了啊。1首先listnode的定义类中的无参有参,一参二参是根据需要来写的,这道题是一参val。3.mylist里面的方法涉及到索引的约定好从0开始。刚好对应虚拟节点是head。2然后链表mylist里面的属性有size和head这道题代表虚拟节点,注意一下。这道题关键在于对临时节点的理解。临时节点是防止之后要用到某个点先保存着。
2024-11-23 15:20:49
246
原创 算法记录leetcode
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);System.out.println("请输入你的年龄:");System.out.println("请输入你的工资:");System.out.println("你的信息如下:");sc.close();// 注意, 要记得调用关闭方法。44.开发商购买土地:简单不用说顺一遍思路就能理解。203.移除链表:java中 引用就是指针。比如说即将输入很多个tmp。
2024-11-23 12:37:44
206
原创 算法leetcode记录
54.螺旋矩阵,n×m的矩阵,四边界法加判断条件有点特殊,需要在每一个边界形成之后都要判断一下,因为随时可能完成。完成直接跳出就行了。59.螺旋矩阵,正方形矩阵:四边界法这道题独特之处是判断停止条件是num加到等于n的平方就可以停止了,简单点。
2024-11-21 14:46:22
395
原创 算法题03
59:螺旋矩阵:这个统一采用k的思路,非常无敌。上下左右的值你要理解为一个工具而设立的值,并且他的加减是通过模拟现实得出的,左右一对,上下一对,就像牵引你画出矩阵的一圈又一圈。滑动窗口,暴力解法是两个循环找出所有子数组,滑动窗口可以减少很多不必要的子数组,一个for加上判断条件才进入,暴力是不管怎么样都进入,多了一步判断。904:水果成篮:这个人的思路是顺过程的思路,每条路试一下,反正种类超过3的话就相当于扔掉之前的水果。
2024-11-20 22:33:26
137
原创 算法记录02
26.删除重复项:关键在于双指针法的判断条件那里,不重复的元素才能填坑,只要看一个元素他之前的那个元素是不是跟他一样就行了,如果一样就不填,这样保证放进去的都是不重复元素。放入答案并移动指针,自己总结是养蛊,左右两边比较最强的,然后能把最强的放进新数组那一边向中间靠近,知道左右指针相等,就相当于比较完全部数字了。844:比较含退格的而字符串:字符串的处理也是一个知识点,这题退格的特性决定了这题采取栈的特性比较贴合,我的思路是先把不是0的放好先,然后根据0的个数,再在后面逆序放0。
2024-11-19 16:32:38
205
原创 算法题记录方便二刷
那怎么找这个位置呢,由于 二分查找的特性之一就是在数组内没有目标值的情况下寻找一定最终左右指针和mid指针指向一个数字,并且由于二分查找是不断逼近目标值的,所以最后这个数字一定是这个数组中从左或者右最逼近目标值的大小的,问题在于大于或者小于的情况下怎么取位置,大于的话,right-1,此时因为最后这个数字是第一个大于的所以直接返回left,小于同理。35搜索插入位置:这个找的到就正常二分查找,找不到难点在于怎么确认插入位置,关键在于找到第一个大于目标值的数的位置,这个位置就是改插入的位置。
2024-11-18 22:40:21
158
原创 关于nginx反向代理和vue里的代理
1浏览器访问前端服务器,比如说我nginx改了端口为7070,浏览器请求就是7070apilongin,这里api是前端上请求是这样的,然后niginx反向代理直接到8080login服务器那边,刚好对上。2.请求就是浏览器拿着一个门票找对应的门口看上面的门牌号,如果对的上就进得去。这两个是都可以的,两个从浏览器到前端服务器到后端服务器的过程都是可以通的。
2024-11-12 22:47:17
151
原创 项目学习的一些体会
重看外卖项目获得许多心得,首先是学习项目的时候一定是白天过,晚上俯视,白天过项目的时候一定要做笔记,首先笔记我认为是后面自己一定要看的,所以需要线索类似的东西,有个好东西就是用 为什么 来联想引入。然后再把知识点之间的人话联系写出来,后面自己看笔记的时候能快速过一遍,然后就是有类似哪种技术或者思想的一定要记下来,过的时候也是要一定要自己写代码,这个是为了提前排除写代码的时候可能会遇到的一些小问题。后面是修改员工,文件上传 ,全局异常处理器,事务管理,maven模块管理的一些知识点。src那里目录分就是。
2024-11-12 17:21:05
499
原创 学习笔记15
3.后端接受日期的时候要指定格式才能接受@DateTimeFormat(pattern=“yyy-mm-d”)LocalDate begin。of(date这个是localdate,localtime。5list《doule》转为前端需要的字符串,stringutils。join(list,“,”)6一个判断式子 turnover ==null?12要求将每个dto中的每个name取出做成一个新的list。
2024-10-29 21:21:15
141
原创 学习笔记14
这里有个点是在后端程序java代码中的map集合如何转为json格式然后发给客户端浏览器。2.websocket 在这部分用来在后端(微信小程序发动)和客户端浏览器发通知。1spring task框架:cron表达式和定时任务类。
2024-10-25 21:18:00
100
原创 学习笔记13
1前后端其实就是根据表面操作管理数据,这一次可能只动一些,(但不是做到表面呈现就行了,是为了整体的。)这些数据可能后面会用到,然后根据不同功能再取出数据。2时间戳作为订单号:string。currenttiemill())3返回主键id(usegenerrated=“true”,keyporpertiy=“id”)4《foreach》用在要遍历一个传进来的集合。
2024-10-23 22:48:31
149
原创 学习笔记12
3.2requesParam这个是暗示框架将字符串1,2,3转为list《long》接受需要加的注解。1.在前后端数据交互的时候,对传入的参数和返回类型敏感一些,属性差异大的类谨慎选择,4一个前端的操作可能涉及多表的操作,可以拆分执行。2.sql语句中字符串统一用单引号。
2024-10-15 22:57:46
128
原创 学习笔记11(项目途中复习点)
4.mybatis操作数据库的时候执行具体的日志怎么输出,正常是在yml文件中给mybatis。7.文件上传(显示图片)过程是从本地上传一个文件发出一个最终目的是显示在前端的请求,要求服务器返回文件的在网络上的绝对路径,这里要连接阿里云oss。12.forezch标签collection=数组,item=后面要用名字,seprate=“,”json格式,网址上没有,一般很多,需要包装成一个对象,这种用@requeboby 封装对象。标签是可以去除多余的逗号,用于修改多个字段的值。
2024-10-14 22:51:57
192
原创 学习笔记10(项目学习途中复习理论知识)
感觉应该是:学习理论知识的时候不用太纠结于自己学了就忘,没关系的,学的时候能搞懂就搞懂,也有的知识点是需要反复多次实践才能理解深刻的,保持一个平和的心态,要催眠告诉自己学习这个理论知识就是这样的,学完理论知识之后要学习项目,在学习项目的途中你会遇到应用问题,这时候以问题为导向,再去复习之前的理论知识,就可以养成一个反射,看到问题会想起对应理论知识点,在做项目的过程中加深理解。(jwt令牌,拦截器,。误区为:不只是在idea中连接上对应的数据库就行了,可以理解为只是这样的话自己的代码并没有连接上数据库。
2024-10-11 18:09:28
197
原创 学习笔记9
3.在xml中有很多可以优化的,比如《if》foreach sql和includ标签应对不同需求。2.xml文件中写sql语句 是mapper接口的进阶版,应对复杂情况。mybatis就是jdbc的升级版。1.mybatis的增删查改操作。梳理mybatis这块的知识。
2024-09-23 22:06:54
154
原创 学习笔记8
2.先看随想录上的文字引入,觉得不够还是理解不了就去搜视频主打一个 多搜 看看完之后再去做题。3.做题一定要自己看10分钟 不行再看题解,然后再总结。4.在写题的过程中遇到的关于java基础的语法知识就遇到一个搜一个。1.就按随想录上面的当做索引来学。自己总结了一下以后怎么学算法。
2024-09-21 22:12:57
134
原创 学习笔记7
如果非要从一种感觉上体会的话,那么我觉得应该是mid+1或者-1将right过早的逼近left使得right=left了,那么,而=mid逼迫的程度没那么紧,使得在left和right紧挨着的时候,mid变换到left或者right的时候就可以把整个这个区间的左右两边界都检查过了,都检查过就可以结束循环了。这段感受本领有限,写的很模糊,还是建议自己在脑中结合动笔过一遍例题的检索过程,然后在看一下这段话的那个点,说不定能启发到自己。今天学了数据库中的mysql中的ddl和dml以及数据库的图形化操作。
2024-09-16 22:24:12
415
原创 学习笔记6
三层结构如下,有个经典例子实例说明三层的关系,前端向服务端发送请求,c首先接受,请求,他想要响应数据,就得先拿到处理好的数据,所以要到s,s是负责处理数据(1转化为男什么的)的,s想要开始处理数据就要拿到数据,d是负责从xml中解析数据的,所以不断传递。解耦是通过控制反转和依赖注入这两个实现的,这两个又依靠几个注解实现,比如什么先控这边就是componet 衍生三个ser repo con 依赖这边就是靠auto。1.响应信号这边:restcontroller是控制类的注解 包含restrespon。
2024-09-15 21:49:09
211
原创 学习笔记5
ipconfig查出来的是你本机的IP地址,也就是内网私有地址,此类地址仅在局域网使用,不能联通外网。百度查出来的地址是你上网的共有地址,也许并不是你主机的地址,而是电信或联通分给你的地址,用于连接互联网” 出自以下这篇优秀文章。另一种是通过外网访问,首先通过百度搜索本机ip,这个是公网ip,然后在客户机上只要输入:http://本机IP:8080/项目名,就可以了。最后一种我猜应该是部署到服务器上,然后拿到域名什么的,然后随时都可以访问了。接下来按自己的话来梳理一下今天所学一部分。
2024-09-12 22:31:10
246
原创 学习笔记4
1.2项目字节码版本指的是这些字节码所遵循的Java类文件格式版本。这个版本号通常与用于编译项目的JDK(Java Development Kit)版本相对应。1.1字节码是Java源代码经过javac编译器编译后生成的中间代码,(.class文件)它是Java虚拟机(JVM)能够理解的指令集。2 语言级别指的是Java语言规范的一个特定版本。它决定了Java源代码中可以使用哪些语法特性、API和库。jdk,jre,jvm的关系。
2024-09-11 23:33:37
307
原创 学习笔记3
(虽然解决了第一个问题,但是我仍然一知半解,只能用治标不治本的方法,一开始我是想尝试自己记录自己的这个解决过程的,防止之后自己又遇到,但写着写着发现自己有很多东西都是一知半解的半桶水水平,现在自己都看不懂,还想后面的自己能看懂吗,所以直接引用了别人的文章,水平如果没有高到一定程度就想写文章感觉太困难了,以为自己想的还可以了一些文章发现自己什么都不会。3 springboot项目建立的时候,自带的启动类不是绿色而是黄橙色并且后缀是.java,这个问题我是看弹幕解决的,你需要打开 项目结构里的模块这一选项,
2024-09-11 22:53:49
407
原创 学习笔记day02
4.前端工程化引入vue这个工具一个框架的正式使用 可以和vscode一起使用。3.ajax中的进化版axios2 从服务器中动态获取数据展示在页面中。1.vue:实现数据的双向绑定,将编程的重点放在数据上 静态固定的数据。2.vue生命周期 这里有一个点是关于页面加载初始化的。5.vue的组件库element 一看就知道。前端后部分,大概了解知道在做什么就行了。6.vue路由 关于页面的切换。
2024-09-08 21:23:59
176
原创 学习笔记day01
上次写完之后,我总感觉不舒服,读了之后也感觉不好,想着写作应该是一件令自己舒服的事,同时给别人读的时候,自己应该也是开心的,那我就想到哪写到哪吧,让自己舒服,想了一下还能表现出自己的真实想法,不想在意什么结构了,一句一句的想吧。7.vue是一套前端框架,实现视图和数据的双向绑定,好处是数据 操作 结构明晰,虽然也用了前面的。3bom对象浏览器对象模型(窗口对象window中的属性(固定的几个比如说地址栏)和方法)2.前端中颜色的复制可以用到拾色器知道rgb的十六进制表示(插件)7.var的变量是全局变量。
2024-08-10 14:16:38
247
原创 学习笔记Day00
说回来,我认为笔记也是非常难做的,照搬复制效率低,只是总结的话,也许当时知道怎么回事,但后面就一头雾水,解决办法我暂时只能想到,笔记的意义有二,第一是可以快速梳理一个章节的知识,不用重新看这么多视频,第二是记录下某些恰当的感悟,所以首先要方便后面的自己追踪搜索找到位置的话我认为要有一个类似索引的东西,这个的话我建议是在每个笔记的开头写,然后就是内容了,我觉得要有两个,一个是这个章节的脉络,以及自己的某些宝贵的感悟。
2024-08-02 21:49:18
161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅