- 博客(63)
- 收藏
- 关注
原创 springcloud笔记
Nacos 是 Dynamic Naming and Configuration Service 的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos官网下载最新的 Nacos 安装包,本文使用 Nacos-2.5.1下载好最近的安装包后,解压到非中文目录,进入bin目录,执行启动命令。OpenFeign,是一种 Declarative REST Client,即声明式 Rest 客户端,与之对应的是编程式 Rest 客户端,比如 RestTemplate。
2026-05-09 10:39:34
360
原创 黑马-code智能体
Coze 是字节跳动推出的AI Agent(智能体)开发平台,定位为 “零代码 / 低代码的 Bot 开发工具”,核心目标是 “让每个人都能开发 AI 应用”—— 无需编程基础即可快速搭建具备自主决策、 工具调用 能力的智能体。传统LLM的缺陷传统大语言模型存在消息滞后(无法获取最新知识)的问题,会导致 “知识过时、用户体验差、Bot 价值打折”。什么是 RAGRAG(Retrieval-Augmented Generation,检索增强生成)是结合知识检索 + 语言生成的 AI 技术,核心解决。
2026-05-07 11:26:19
255
原创 leetcode-hot100-17技巧
*核心思路是:**从右往左找到“可以变大”的位置,并在保证变大的前提下,让后半部分尽可能小。这是经典的荷兰国旗问题,通过三个指针将数组划分为三部分:左侧是 0,中间是 1,右侧是 2。由于众数数量超过一半,经过成对抵消后,最终剩下的候选元素一定是众数。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。如果整个队伍是从大到小排好的,那已经是最大的了,直接全部反过来,变成最小的排队方式就可以啦!,可以在不修改数组、O(1) 额外空间下找到环的入口,也就是重复的数字。
2026-03-30 12:32:03
473
原创 leetcode-hot100-16多维动态规划
计算顺序:从字符串的每个位置开始,分别进行两次扩展,得到两个不同的回文长度。取较大的值,更新最长回文的起始和结束位置。初始化:初始化 start = 0 和 end = 0,表示回文子串的起始和结束位置。最终结果:返回从 start 到 end 的子串,表示字符串中最长的回文子串。,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。对于每种情况,通过中心扩展法,向两侧扩展,找到回文的最大长度。 (2)以该字符和下一个字符为中心的偶数长度回文子串。 (1)以该字符为中心的奇数长度回文子串。
2026-03-30 12:19:42
365
原创 leetcode-hot100-15动态规划
假设你正在爬楼梯。需要 阶你才能到达楼顶。每次你可以爬 或 个台阶。你有多少种不同的方法可以爬到楼顶呢?方法一:c状态标识:爬到第i层楼梯时,有多少种方法。状态转移方程:dp[i] = dp[i-1] + dp[i-2],表示从走一步和走两步的方式。初始化:dp[1] = 1 , dp[2] = 2。返回值:dp[n],即走到第n层可以有多少种爬法。方法一:js方法一:java118. 杨辉三角给定一个非负整数 *,*生成「杨辉三角」的前 行。在**「杨辉三角」**中,每
2026-03-29 17:16:01
257
原创 leetcode-hot100-14贪心算法
(Greedy Algorithm)是一种常见的优化算法,用于解决最优化问题。该算法的核心思想是每次选择当前情况下的最优解,并期望通过这些局部最优解得到全局最优解。贪心算法通常用于那些可以分解为若干个子问题,且每个子问题的最优解可以合成全局最优解的问题。贪心算法之所以有用,是因为它可以快速地做出决策,并能在某些问题上实现较高的效率,避免了回溯与暴力解法的复杂度。。每一步做出决策时,贪心算法并不考虑未来的选择。它的核心假设是:通过局部最优的选择,最终能得到全局最优的解。
2026-03-29 10:34:57
416
原创 leetcode-hot100-13堆
是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。**输入:**nums = [1,1,1,2,2,3], k = 2。作用:因为 unordered_map。请注意,你需要找的是数组排序后的第。:存较小一半数字,堆顶是左边最大值。:存较大一半数字,堆顶是右边最小值。保证两堆平衡,中位数直接从堆顶取,你必须设计并实现时间复杂度为。,让 vector 拥有全部。是 vector 里的两个。,请你返回其中出现频率前。个最大的元素,而不是第。
2026-03-28 18:53:44
246
原创 leetcode-hot100-12栈
此时计算两个下标差值即为等待天数,将结果存入对应位置并弹出栈顶,重复此过程直到栈为空或栈顶温度不小于当前温度,再将当前下标入栈等待后续匹配,最终得到每个位置所需的等待天数。输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。栈中只存储温度数组的下标,遍历每个温度时,若当前温度大于栈顶下标对应的温度,说明栈顶下标位置。的下标,通过边界计算最大宽度,最终算出所有柱子对应的矩形面积,取最大值。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数。,表示每天的温度,返回一个数组。
2026-03-26 17:36:20
273
原创 leetcode-hot100-11二分查找
给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]思路:用两次二分查找,第一次找出第一个等于 target 的元素的位置,第二次找出最后一个等于 target 的元素的位置。
2026-03-23 15:17:07
251
原创 leetcode-hot100-10回溯
(处理第 index 位数字),遍历当前数字对应字母→选字母→递归下一位→回溯,最终收集所有完整组合。和上题差不多,形式上会更复杂,因为是字符串,需要额外处理。) = “试探 + 撤销”,深度优先搜索 + 回退,尝试一条路,如果不通,就“退回去”试别的路。(i+1)避免重复子集,且每一步递归的路径都是一个有效子集(需即时收集)。给出数字到字母的映射如下(与电话按键相同)。如果至少一个数字的被选数量不同,则两种组合是不同的。的字符串,返回所有它能表示的字母组合。返回该数组所有可能的子集(幂集)。
2026-03-21 23:17:54
175
原创 docker部署vue和boot前后端分离以及redis+nginx+mysql配置
docker部署vue和springboot前后端分离保姆级教程首先我这里的环境是阿里云服务器centos7,加域名解析配置1.docker安装第一件事当然是安装docker1.1卸载原有docker1.2安装yum包和存储驱动1.3设置阿里云镜像 仓库这种当然是采用阿里云镜像加速包了,国外镜像比较慢,我这里就不给出了1.4安装dockerce为社区版,而ee为企业版,这里采用社区版就够了1.5启动docker1.6查看docker版本1.7配置阿里云镜像加速。
2026-03-19 13:41:44
379
原创 leetcode-hot100-9图论
每门课程可能有一些“必须先学的课程”,先把所有“可以立刻学的课程”(没有前置课)放进一个队列里,然后一个一个学,如果某门课的所有前置课都完成了,就把它也加进队列。(1)如果发现一格是陆地,以它为基准,向上下左右进行广度优先搜索,如果是陆地,转换成水域(0)。最后如果所有课程都学完了,说明是可行的;否则,说明有互相依赖(死循环),学不了。(水)组成的的二维网格,请你计算网格中岛屿的数量。应用题,如果不用智能指针,需要注意内存泄露问题。和上题类似,用队列存储,用 BFS 做模拟。,表示如果要学习课程。
2026-03-19 13:31:06
401
原创 leetcode-hot100-7链表
给你两个单链表的头节点 和 ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 图示两个链表在节点 开始相交**:**题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。自定义评测:评测系统 的输入如下(你设计的程序 不适用 此输入):评测系统将根据这些输入创建链式数据结构,并将两个头节点 和 传递给你的程序。如果程序能够正确返回相交节点,那么你的解决方案将被 视作正确答案 。示例 1:示例 2:示例 3:方法一:c(暴力解法)
2026-03-09 13:41:13
329
原创 leetcode-hot100-6矩阵
输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5。输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]
2026-03-07 12:42:30
331
原创 leetcode-hot100-5普通数组
具体思路是通过两个数组分别记录索引 i 左侧所有元素的乘积和右侧所有元素的乘积,对于索引 i,除 nums[i] 之外其余各元素的乘积就是左侧所有元素的乘积乘以右侧所有元素的乘积。思路分析:这道题找规律就行了,k = 3,相当于把最后 3 个元素插入到新数组,前面的按顺序往后插入就行了,唯一需要注意的是 k 有可能会大于 nums 的长度,因此需要取模处理。思路分析:这道题还是相对简单的,但要注意的是,数组区间重合可能有多种情况,但不重合只有一种情况,因此下面的代码的条件判断是不重合的情况。
2026-03-05 23:39:19
311
原创 leetcode-hot100-4子串
在 deque 中,q.back()用来读取队尾元素,q.pop_back()是将队尾元素剔除,这个队列实际上是为了保证从队首(front)到队尾(back)下标对应的值是递减的,因此,在初始化的时候,如果发现右边(优先级更高)的值大于队尾对应的值,就可以把队尾给丢掉了。优先队列的思路:看上面的暴力解法,实际上改进的方向是显而易见的,因为移动窗口每次只移动一个长度,窗口之间相交的部分实际上是重复计算的。返回滑动窗口中的最大值。所谓单调队列,就是包含单调性的队列,比如让队列头到队列尾,值是单调递减的。
2026-03-04 13:01:48
283
原创 SpringCloud-nacos问题
由于nacos使用了反射,但是高版本 JDK(Java9+)引入了Java 模块化机制(JPMS),做了严格的反射权限控制,而 Nacos 2.x.x 底层依赖的 Tomcat、SpringBoot 组件还沿用了 JDK8 的反射写法,在高版本 JDK 中会触发权限拦截,直接导致启动失败。(2)“系统属性”-“高级”-“环境变量”-“系统变量”-“Path”-“编辑”,删除以下2条。(4)“系统属性”-“高级”-“环境变量”-“系统变量”-“Path”-“编辑”,增加以下2条。保存后正常启动即可。
2026-03-03 23:04:18
401
原创 spring-cloud尚硅谷笔记
Nacos 是 Dynamic Naming and Configuration Service 的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos官网下载最新的 Nacos 安装包,本文使用 Nacos-2.5.1下载好最近的安装包后,解压到非中文目录,进入bin目录,执行启动命令。OpenFeign,是一种 Declarative REST Client,即声明式 Rest 客户端,与之对应的是编程式 Rest 客户端,比如 RestTemplate。
2026-03-03 18:15:04
429
原创 Git笔记
是目前世界上最先进的分布式版本控制系统,可以快速高效地处理从小型到大型项目的所有事务。特点:易于学习,占用内存小,具有闪电般快速的性能。
2026-03-01 14:31:03
658
原创 leetcode-hot100-3字符串
滑动窗口有点类似于双指针的思路,通过两个指针表示字符串中的某个子串(窗口)的左右边界,左指针从起始位为开始遍历,右指针不断向右拓展,找到集合中无重复的字符就加入窗口范围。答:字母 c 进入窗口后,如果导致 cnt[c]<0,由于其余字母的出现次数没有变化,所以有且仅有字母 c 的个数比 p 的多。′ 的每种字母的出现次数,和 p 的每种字母的出现次数都相同,那么。′ 的每种字母的出现次数,和 p 的每种字母的出现次数都相同,′ 的每种字母的出现次数,等于 p 的每种字母的出现次数,即。
2026-01-19 23:08:02
953
1
原创 leetcode-hot100-2双指针
设两指针 i , j ,指向的水槽板高度分别为 h[i] , h[j] ,此状态下水槽面积为 S(i,j)。因此,初始化双指针分列水槽左右两端,循环每轮将短板向内移动一格,并更新面积最大值,直到两指针相遇时跳出;slice(): 不会改变原始数组,而是返回一个新数组。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。的蓄水量,实现O(n)时间与O(1)空间复杂度的最优解。移动到数组的末尾,同时保持非零元素的相对顺序。**注意:**答案中不可以包含重复的三元组。轴共同构成的容器可以容纳最多的水。
2026-01-18 22:48:44
328
原创 leetcode-hot100-1哈希
整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。:Set 是 ES6 新增的数据结构,其元素唯一不重复,且可按插入顺序迭代。与数组相比,Set 插入删除效率更高,且自动处理重复值。* 定义初始数字和连续序列个数,如果容器中有下一个连续数字,加1继续循环。,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。* 最终得出最长连续序列个数,时间复杂度O(n)关键字返回迭代器,简化了手动实现迭代器的过程。* 定义一个无序set容器,放入数组元素。
2026-01-18 20:48:46
353
原创 软件测试--黑马程序员
软件中存在的任何问题,也叫缺项(bug)软件未实现需求(规格)说明书中明确要求功能–>少功能软件实现的功能超出需求(规格)说明书指明的范围–>多功能软件出现了需求(规格)说明苏中不应该出现的错误–>功能错误软件为实现的需求(规格)说明书中虽未明确指明但应该实现的要求–>隐性功能缺失/错误软件难以理解,不易使用,运行缓慢,用户体验不好–>不易使用缺陷描述及提交目的:将缺陷交给开发,开发根据描述可复现缺陷工具:禅道、jira。
2025-03-20 17:04:42
1014
原创 高精度加减乘除
这段 C++ 代码实现了高精度整数乘法的功能。由于普通的整型数据类型(如intlong long等)在表示范围上有限制,对于非常大的整数相乘无法直接准确计算,所以通过使用整型数组来模拟高精度计算过程。
2024-12-27 10:11:14
866
原创 c++补充
命名空间(namespace):命名空间是C++中用来组织代码的一种机制,它可以避免全局作用域中的名字冲突。局部作用域:using namespace std;是C++中的一条语句,它的作用是告诉编译器你可以直接使用 std 命名空间中的标识符(如函数、类等),而不需要每次调用它们时都加上 std:: 前缀。,我们可以直接使用 cout 和 endl,而不需要写成 std::cout 和 std::endl。因此,在实际开发中,特别是大型项目中,推荐只导入所需的特定标识符,而不是整个 std 命名空间。
2024-08-27 13:04:04
429
原创 c语言程序设计-谭浩强
*定义一维数组的一般形式为:类型符 数组名[常量表达式];*///定义为3x4(3行4列)的数组,b为5行11列的数组。//一般形式为:类型说明符 数组名[常量表达式][常量表达式];char c[4];c[0]='l';c[1]='o';c[2]='v';c[3]='e';指定函数的名字,以便以后按名调用;指定函数的类型,即函数返回值的类型;指定函数的参数的名字和类型,以便在调用函数时向他们传递数据。对无参函数不需要这项;
2024-05-06 13:31:47
890
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅