- 博客(60)
- 收藏
- 关注
原创 代码随想录第十天 栈和队列
这道题倒是没啥算法性质,主要还是模拟(话说模拟也不简单啊,挺考验思维能力的),一个栈的话只能先进后出所以怎么都无法实现先进先出的效果,所以肯定是两个栈,一个模拟入队,一个模拟出队,具体实现时是一个栈作为压入栈,在压入数据时只往这个栈中压入,记为In_stack;另一个栈只作为弹出栈,在弹出数据时只从这个栈弹出,记为out_stack。那么此时如果用户想进行弹出操作,6将最先弹出,与预想的队列顺序就不一致.此时如果用户想进行弹出操作,那么4将最先弹出,与预想的队列顺序就不一致。的栈顶到栈底为5~1,从。
2026-01-23 23:30:40
333
原创 代码随想录 第六天
第三题 三数之和 这个剑指offer有,思路简单,但是要注意的细节比较多,ijk三个索引的去重,边界值的处理,我写了七八遍才一遍会,但好像已经把题背下来了.........分为两组用哈希表,但后面的大组是否有前面的值的相反数.第四题 四数之和 思路同上,就是又套了一层for循环.思路简单:哈希表的数如果用完了(出现负数),代表。
2026-01-20 23:43:39
217
原创 代码随想录 第六天
力扣第一题,学过哈希表的话应该还是很明显能想到用哈希表。有可能陷入无限循环,从这受启发应该用set。注意append和extend的区别。python是强大,一行就写完了。简单 可以用26位数组模拟哈希表。这个是进阶版本的题目。
2026-01-19 23:07:38
196
原创 大模型学习day01 python基础
创建虚拟环境的作用 1base包太多,打开加载很慢,2python兼容性不好,一个项目一个虚拟环境方便管理。kyai4 为虚拟环境名,python=3.10为python的版本,python3.12不向下兼容2.x。接下来可以和PyCharm做关联。1. 虚拟环境的创建。
2026-01-17 20:00:23
224
原创 代码随想录第四天
第一题画图后会清晰好多,指针怎么指就好写了第二题这个属于比较简单的,善用虚拟头结点和双指针第三题也比较简单第四题难在理解怎么判断环和找到环的入口,这其实是算法上很经典的一个问题,大名鼎鼎的Floyd判圈算法,能自己想出来的人恭喜你,早出生几十年这个算法可能就是以你的名字命名了,我的水平理解这个算法都画了好久。。。。
2026-01-17 12:22:03
259
原创 代码随想录第三天 链表
注意cur.next为待删除目标时cur不往后移,因为后面还可能是相同元素。虚拟头结点还是挺方便的。设计类的还是有点难度的,注意索引是否越界要提前判断,首尾插入都应该是按索引插入的特例。代码不难,也用不着虚拟头结点。
2026-01-16 20:14:28
243
原创 代码随想录算法训练营第一天 | 二分查找、双指针
这个题目思想很简单,一个人你让他猜一个1000以内的数,他大概也是用二分查找的思想,不过真正到写代码发现还是有坑的,首先是区间是左闭右开还是左闭右闭,这个决定了right是len(nums)还是len(nums)-1,以及while left < right:还是while left <= right: 以及收缩区间的时候right=mid还是mid-1。注意左闭右闭的时候right=mid-1 这不光是查找效率的问题,而是不这么写可能会死循环,双指针,碰到预期值与右指针交换即可,不需要全部移动。
2026-01-14 21:50:36
149
原创 机器学习之线性回归
多元线性回归的逆矩阵首先不一定存在,就是存在求逆也是非常大的计算量。此时可以考虑梯度下降法。一元线性回归和多元线性回归均有解析解,
2026-01-09 11:28:02
175
原创 机器学习第二讲 KNN算法
一、简介KNN算法思想:如果一个样本在特征空间中的k个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别。这其中k值的选择较为关键,k值过小容易受异常点影响,容易过拟合,而k值过大则模型变得简单容易欠拟合,如k=N,无论输入实例是什么都是训练集里个数最多的。可以使用交叉验证或者网格搜索对k值调优。分为分类或回归两类。
2026-01-05 13:11:21
348
原创 DL 第一讲 PyTorch基础
张量是PyTorch的核心数据抽象,是元素为同一数据类型的多维矩阵,与Numpy数组类似,张量的默认数据类型是float32,torch.tensor()可以创建张量。torch.randn(size) 标准正态分布(均值为0,标准差为1)torch.rand(size) 均匀分布(在[0, 1)区间均匀分布)torch.randint(low, high, size)离散均匀分布(返回整数)
2026-01-02 13:09:12
225
原创 机器学习课程day01 机器学习概述
2.ML机器学习是AI的子集,与其他计算机科学的最大不同在于以往的程序员基于规则编程,但是自然界还有好多规则描述不清楚的,如猫狗图像的识别与分类,如自然语言处理,机器学习让机器自动学习,而不是基于规则的编程(不依赖特定规则编程)1、获取数据 2、数据预处理(缺失值处理、异常值处理等)3、特征工程(特征提取,特征预处理、特征降维等)4、模型训练 5、模型评估 6、模型预测。:依托大数据、强大算力与深度学习算法,AI在视觉、语音、自然语言处理等领域取得突破性进展,进入广泛落地和爆发式增长的新纪元。
2025-12-14 23:02:42
295
原创 探密. git 目录
objects:存放对象 .git/objects/ 文件夹中的子文件夹都是以哈希值的前两位字符命名 每个 object 由 40 位字符组成,前两位字符用来当文件夹,后 38 位做文件。git cat-file -p b44dd71d62a5a8ed3 显示版本库对象的内容(查看commit下的内容)git cat-file -t b44dd71d62a5a8ed3 显示版本库对象的类型 -t类型。git cat-file 命令 显示版本库对象的内容、类型及大小信息。1. HEAD:指向当前的工作路径。
2025-03-05 11:24:01
484
原创 学成在线 支付与学习
我们系统需要与小程序支付接口对接有:下单接口:系统后端调用微信支付的下单接口。支付通知:微信支付调用在线教育系统后端接口。商户订单号查询:系统后端调用微信支付的商户订单号查询接口。支付渠道表,交易单表,退款记录表介绍:实现与第三方支付平台的对接,用户在进行支付时选择支付方式。我们公司已经准备好了相关的基础代码,支付功能的代码是固定的,只需要进行修改调用即可。1.支付:用户点击支付按钮,前端请求订单服务,订单服务请求支付服务,最后支付服务请求微信的下单接口。
2025-01-18 17:18:28
1258
原创 数据结构 数组
作为高级语言编程者,是不是数组就无用武之地了呢?当然不是,有些时候,用数组会更合适些,我总结了几点自己的经验。1.Java ArrayList无法存储基本类型,比如int、long,需要封装为Integer、Long类,而Autoboxing、Unboxing则有一定的性能消耗,所以如果特别关注性能,或者希望使用基本类型,就可以选用数组。2.如果数据大小事先已知,并且对数据的操作非常简单,用不到ArrayList提供的大部分方法,也可以直接使用数组。
2025-01-17 15:08:38
803
原创 自动售货机
Vue.js和Element UI 、Echarts、Taro、React、Flutter、腾讯地图1.Vue.js是一个渐进式的JavaScript 框架,用于构建用户界面,以其轻量级、易学易用和响应式数据绑定等特点,使得我们项目的前端开发更加灵活和高效。2.Element UI 提供了大量的高质量组件,帮助我们快速搭建起美观的管理界面。3.Echarts帮助我们统计、渲染图表数据。4.React采用虚拟 DOM 和组件化的设计理念,能够高效地构建复杂且交互式的用户界面。
2025-01-12 21:44:14
1109
原创 zzyl逐字稿
用的比较新的4.0大模型。护理等级:这个模块在养老院系统的主要作用是,让将要入住的老人进行选择配置,比如有一个老人入住养老院,在前期呢有个健康评估系统,会先给老人做一个健康评估,然后健康评估系统会根据老人的健康评估报告以及老人的年龄这些综合因素,去推荐老人选择不同的护理等级,不同的护理等级包含的护理项目是不同的,价格也是不一样的。由于目前设备上报的数据都是存储到了MySQL的表中,设备上报的数据是巨大的,一天大概能上报70万的数据,当家属查看老人的历史数据的时候,由于表存储的数据较多,查询的效率就会很低。
2025-01-12 21:38:50
1204
原创 积分系统的设计
学习是需要正反馈的,这样学员才能有源源不断的动力去继续学习。为了激励学员,我们需要设定一个学习系统。优秀的学员给予一定的奖励,比如奖励优惠券。大家互相比拼的,刺激学员持续学习,互相卷起来。而且不仅在天机学堂项目,很多其它类型项目中也都会有积分、排行榜功能。
2025-01-09 21:51:26
1012
原创 签到系统的设计
签到的核心要素是:谁签到,啥时候签到同时需要考虑一些功能:补签功能,按年月日统计的功能,所以数据表的字段应该有:id ----主键iduser_id ----用户idyear ----签到年份month ----签到月份date ----签到日期is_backup ----是否补签由此设计出数据库。
2025-01-09 21:38:53
721
原创 点赞系统的设计
一、点赞功能整体剖析在各类社交、电商等项目里,都具有点赞功能,为确保其能便捷地融入不同项目的多样化业务场景,点赞功能的实现应该和其他模块相互独立,即实现解耦。如此一来,后续有需求时,只需将精心设计好的点赞微服务模块嵌入项目即可,使其具备良好的可移植特性。与此同时,一个通用性强的点赞功能还得拥有应对高并发读写请求的出色能力。起初,考虑运用 MYSQL 来实现点赞功能并存储相关点赞数据,可以引入mq进行解耦。二、基于 MYSQL 与 MQ 搭建点赞功能架构要打造一套完备且实用的点赞功能体系,像避免同一用户对同一
2025-01-08 21:51:20
1124
原创 黑马点评 登录部分
用户在提交手机号后,会校验手机号是否合法,如果不合法,则要求用户重新输入手机号如果手机号合法,后台此时生成对应的验证码,同时将验证码进行保存,然后再通过短信的方式将验证码发送给用户用户将验证码和手机号进行输入,后台从session中拿到当前验证码,然后和用户输入的验证码进行校验,如果不一致,则无法通过校验,如果一致,则后台根据手机号查询用户,如果用户不存在,则为用户创建账号信息,保存到数据库,无论是否存在,都会将用户信息保存到session中,方便后续获得当前登录信息。
2025-01-03 18:36:41
1619
原创 Spring web 琐碎知识点 配置文件 会话技术
什么是会话?在我们日常生活当中,会话指的就是谈话、交谈。在web开发当中,会话指的就是浏览器与服务器之间的一次连接,我们就称为一次会话。在用户打开浏览器第一次访问服务器的时候,这个会话就建立了,直到有任何一方断开连接,此时会话就结束了。在一次会话当中,是可以包含多次请求和响应的。比如:打开了浏览器来访问web服务器上的资源(浏览器不能关闭、服务器不能断开)第1次:访问的是登录的接口,完成登录操作第2次:访问的是部门管理接口,查询所有部门数据第3次:访问的是员工管理接口,查询员工数据。
2025-01-01 15:03:56
785
原创 JavaEE 3大组件 Listener Servlet Filter
Servlet: Server Applet,翻译为运行在服务端的Java小程序,是sun公司提供一套规范( 接口 ),用来定义我们的代码怎么写才能被tomcat识别。本质:接口,一个类想要被tomcat正确识别,那么这个类就必须直接或间接的实现Servlet接口。任务:接收请求,处理请求,返回响应。
2024-12-28 18:40:32
1004
原创 java web mybatis-puls
Mybatis-Plus(简称MP)是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus 🚀 为简化开发而生,下面是其特性:无侵入:只做增强不做改变,不会对现有工程产生影响强大的 CRUD 操作:内置通用 Mapper,少量配置即可实现单表CRUD操作支持 Lambda:编写查询条件无需担心字段写错支持主键自动生成内置分页插件步骤1 创建数据库及表。
2024-12-26 21:13:59
1135
原创 javaweb 04 springmvc
0.1 在上一次的课程中,我们开发了springbootweb的入门程序。 基于SpringBoot的方式开发一个web应用,浏览器发起请求 /hello 后 ,给浏览器返回字符串 “Hello World ~”。其实呢,是我们在浏览器发起请求,请求了我们的后端web服务器(也就是内置的Tomcat)。而我们在开发web程序时呢,定义了一个控制器类Controller,请求会被部署在Tomcat中的Controller接收,然后Controller再给浏览器一个响应,响应一个字符串 “Hello World
2024-12-26 16:42:21
1132
原创 java web03 springAOP
Spring 是一款目前主流的 Java EE ==轻量级、全栈型、开源框架== ,Rod Johnson 提出并创立,目的是用于简化开发,目前流行版本是5系列Spring全称 Spring Framework,其功能有:==IOC-控制反转,轻松实现层间解耦====AOP- 面向切面编程,轻松实现公共代码抽取====MVC - 开发web应用程序==事务 - 无需编写代码,即可实现数据库事务管理测试 - 与测试框架集成、web 单元测试。
2024-12-25 20:18:45
831
原创 java web 01 mybatis
0.1 MavenMaven是apache提供的一个项目管理工具,它的作用就是管理项目3个作用1.依赖管理依赖管理主要指的是项目怎样引入依赖包,maven会将所有需要的依赖包放在本地仓库中,然后每个项目通过配置文件引入自己所需要的那部分2.统一项目结构在项目开发中,当你使用不同的开发工具 (如:Eclipse、Idea),创建项目工程时:3.项目构建maven提供了标准的、跨平台(Linux、Windows、MacOS) 的自动化项目构建方式3套生命周期clean:清理工作。
2024-12-24 20:57:56
1222
原创 java web springboot
总之:SpringBoot最主要作用就是帮我们快速的构建庞大的spring项目,并且尽可能的减少配置,让程序员去关注业务而非配置。SpringBoot的约定大于配置,即SpringBoot的大量配置都有默认值,如果我们不去写配置就使用默认的。使用SpringBoot之后,程序员只需按照它规定的方式去进行程序代码的开发即可,而无需再去编写一堆复杂的配置。父工程,它内部已经锁定了一些常见依赖的版本号,故而在我们自己开发的工程中无需再指定依赖的版本。4. 为什么我们访问程序的时候要用8080端口,谁定义的。
2024-12-23 18:54:10
908
原创 黑马头条day01 微服务搭建
如这种静态资源,采用http的发送到本地8803端口的静态资源请求,而nginx配置的监听8801、8802、8803,所以请求走到nginx,nginx的admin配置文件可以发现未特殊声明的都走到location /,也就是转到html/toutiao/admin-web/目录下静态资源都在这个下面。也就是静态资源nginx自己就处理了另外如登录请求是个动态资源请求还是由上面的配置文件发现admin_gateway都转到了 upstream heima-admin-gateway{
2024-12-16 18:52:45
631
原创 HashMap的put与扩容机制
4.3 遍历table[i],链表的尾部插入数据,然后判断链表长度是否大于8,大于8的话把链表转换为红黑树,在红黑树中执行插入操 作,遍历过程中若发现key已经存在直接覆盖value。p代表计算出下标的位置,e初始化是空的,最后根据e是否为空统一处理,为空说明没有更新操作,返回空,e不为空说明有更新赋值的操作,最后统一更新值并返回旧值。如果是链表,则需要遍历链表,可能需要拆分链表,判断(e.hash & oldCap)是否为0,该元素的位置要么停留在原始位置,要么移动到原始位置+增加的数组大小这个位置上。
2024-11-24 11:00:50
534
原创 Java并发编程 第八章 共享模型之工具
/ 独占锁,同步器类@Override//加上了锁,并设置owner为当前线程@Override//可以加写屏障@Override// 是否持有独占锁有了自定义同步器,很容易复用 AQS ,实现一个功能完备的自定义锁// 自定义锁(不可重入锁)@Override // 加锁(不成功会进入等待队列)@Override // 加锁,可打断@Override// 尝试加锁(只尝试一次)@Override// 尝试加锁带超时(只尝试一次)
2024-09-24 19:31:54
1020
原创 Java并发编程 第七章 共享模型之不可变对象
定义 英文名称:Flyweight pattern. 当需要重用数量有限的同一类对象时出自 "Gang of Four" design patterns归类 Structual patterns。
2024-09-08 21:27:17
1091
原创 Java并发编程 第五章 共享模型之内存
本章重点讲解了 JMM 中的可见性 - 由 JVM 缓存优化引起有序性 - 由 JVM 指令重排序优化引起happens-before 规则原理方面CPU 指令并行volatile模式方面两阶段终止模式的 volatile 改进同步模式之 balking。
2024-09-07 11:31:31
1253
原创 Java并发线程 共享模型之管程 5
每个线程都有自己的一个 Parker 对象,由三部分组成 _counter , _cond 和 _mutex 打个比喻线程就像一个旅人,Parker 就像他随身携带的背包,条件变量就好比背包中的帐篷。很多教程中把饥饿定义为,一个线程由于优先级太低,始终得不到 CPU 调度执行,也不能够结束,饥饿的情况不易演示,讲读写锁时会涉及饥饿问题。如果这时线程还在运行,那么下次他调用 park 时,仅是消耗掉备用干粮,不需停留,继续前进,因为背包空间有限,多次调用 unpark 仅会补充一份备用干粮。
2024-09-04 17:09:13
1425
原创 java并发 共享模型之管程 4.
obj.wait() 让进入 object 监视器的线程到 waitSet 等待obj.notify() 在 object 上正在 waitSet 等待的线程中挑一个唤醒obj.notifyAll() 让 object 上正在 waitSet 等待的线程全部唤醒它们都是线程之间进行协作的手段,都属于 Object 对象的方法。必须获得此对象的锁,才能调用这几个方法try {因为没获取此对象的锁。如下就可以了log.debug("执行");
2024-09-04 10:57:31
1380
原创 java并发 第四章共享模型之管程 3 synchronized 原理
轻量级锁的使用场景:如果一个对象虽然有多线程要加锁,但加锁的时间是错开的(也就是没有竞争),那么可以使用轻量级锁来优化。轻量级锁对使用者是透明的,即语法仍然是 synchronized假设有两个方法同步块,利用同一个对象加锁1. 创建锁记录(Lock Record)对象,每个线程都的栈帧都会包含一个锁记录的结构,内部可以存储锁定对象的Mark Word。
2024-09-02 20:56:18
973
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅