🔥hot100-P2

树🌲
35.二叉树的中序遍历:递归/非递归
前序:根左右 中序:左根右 后序:左右根
36.二叉树的最大深度:递归
37.翻转二叉树:递归 交换
38.对称二叉树:递归 判断左右子树是否互为镜像
39.二叉树直径:链:node子树中叶子节点到node路径,拼node左右两条链长最大值为直径。DP
40.二叉树的层序遍历:Queue BFS
41.有序数组转换为二叉搜索树:二分得到两个小数组  递归 
42.验证二叉搜索树:前序/中序遍历
43.二叉搜索树中第k小的元素:中序遍历找第k个节点
44.二叉树的右视图:先递归右子树,再递归左子树
45.二叉树转为链表:头插法 按右子树-左子树-根顺序DFS树
46.前序 中序 数组构造二叉树:前序:根左右 中序:左根右 分左右子树递归
47.路径总和III:哈希表统计根节点开始的路径和的出现次数,计算起点的次数
48.二叉树最近的公共次数:当前节点 null p q / 左右子树是否为空
49.二叉树中的最大路径和:DP 链 直径

50.岛屿数量:递归遍历上下左右并标记
51.腐烂的橘子:多源BFS Queue 四方向遍历
52.课程表:(有向图是否有环)建图 三色标记法
53.实现Trie(前缀树):构造26叉树(包含长26的子节点,和布尔值end/flag 标识变量判断是否为终止节点)。
 回溯
选与不选:子序列排列型回溯:枚举选哪个
54.全排列:boolean []onPath标记选过没 再枚举path[i]填哪个的数
55.子集:选与不选
56.电话号码的字母组合:DFS + 枚举回溯
先写数字对应电话键盘字母常量数组    获取当前数字对应的字母串 当前数字对应的字母串
57.组合总数:选与不选 dfs中target == 0 说明找到了一个合法组合 加入path
58.括号生成:')' 数量==n 填完 '(' < n 填 '('')' < '(' 填')'
59.单词搜索:DFS + 回溯  上下左右 优化:可行性剪枝+顺序剪枝
60.分割回文串:DFS + 回溯 
枚举字符串中所有可能的分割点(选 / 不选 i 和 i+1 之间的逗号),只保留 所有分割出的子串都是回文
61.N皇后:DFS + 回溯 逐行放置皇后
正斜线diag1[2 * n - 1]  r + c反斜线diag2[2 * n - 1] r - c + n - 1
queens[r] = c 表示第 r 行的皇后放在第 c 列
col[c] = true 表示第 c 列已被皇后占用
二分
62.搜索插入位置:二分
63.搜索二维矩阵:从第一行最后一列排除法
64.在排序数组中查找元素的第一个和最后一个位置:
二分找第一个位置再找元素值+1的第一个位置下标再 -1  要判断能否找到
65.搜索旋转排序数组:
先找到旋转数组的最小值下标(旋转点),将数组拆分为两个升序的子数组
判断 target 属于哪个升序子数组,在该子数组中用二分查找找目标值。
66.寻找旋转排序数组中的最小值:二分中点值与最后一位值(nums[n-1])比较
67.寻找两个正序数组中位数:
将两个数组整体划分为左右两部分,左部分的所有数 ≤ 右部分的所有数;
a/b 对 nums1/nums2 的 “哨兵扩展数组”:头部加(-∞)、尾部加 (+∞),避免处理数组边界越界。
a[i] ≤ b[j+1] && b[j] ≤ a[i+1]
左部分的元素个数 = (m+n+1)/2(保证奇数长度时左部分多一个,直接取左部分最大值为中位数);
枚举 nums1 的分割点,推导 nums2 的分割点,找到满足 “左≤右” 的分割点后,计算中位数。
#算法#
全部评论

相关推荐

头像
03-05 16:52
已编辑
北京邮电大学 Java
最近做了一个企业级&nbsp;RAG&nbsp;智能体项目&nbsp;Ragent,基于&nbsp;SpringBoot&nbsp;技术栈&nbsp;+&nbsp;手搓&nbsp;RAG,完整开源了。不是&nbsp;Demo&nbsp;级别的调&nbsp;API&nbsp;玩具,是覆盖了&nbsp;RAG&nbsp;全链路的工程实现,分享出来给大家参考。GitHub:https://github.com/nageoffer/ragent为什么做这个项目现在面试越来越多地问&nbsp;AI&nbsp;相关的东西——RAG&nbsp;怎么做的?Agent&nbsp;怎么实现?MCP&nbsp;了解吗?但市面上大部分&nbsp;RAG&nbsp;教程要么是&nbsp;Python&nbsp;生态,要么停留在调&nbsp;API&nbsp;跑通&nbsp;Demo&nbsp;的阶段,离真正能上线的系统差距很大。所以基于自己在公司实际落地&nbsp;RAG&nbsp;系统的经验,做了&nbsp;Ragent&nbsp;这个项目,把企业里真正会遇到的问题都实现了一遍。核心能力▪&nbsp;多路检索引擎:意图定向&nbsp;+&nbsp;全局向量双通道并行,检索结果经去重、重排序等后处理流水线。▪&nbsp;意图识别:树形意图分类体系,置信度不足时主动引导澄清。▪&nbsp;问题重写与拆分:多轮对话自动补全上下文,复杂问题拆分为子问题分别检索。▪&nbsp;会话记忆:滑动窗口&nbsp;+&nbsp;自动摘要压缩,控制&nbsp;Token&nbsp;成本的同时保留关键上下文。▪&nbsp;模型路由与容错:多模型候选、优先级调度、首包探测、三态熔断器、自动降级。▪&nbsp;MCP&nbsp;工具调用:知识检索与外部系统调用在同一流程中无缝融合。▪&nbsp;文档入库&nbsp;ETL:基于节点编排,从解析、分块、向量化到写入&nbsp;Milvus,每步可配置、有日志。▪&nbsp;全链路追踪:每次对话的重写、意图、检索、生成各环节都有&nbsp;Trace&nbsp;记录。技术栈后端:Java&nbsp;17、Spring&nbsp;Boot&nbsp;3、MyBatis&nbsp;Plus、Milvus&nbsp;2.6、Redis&nbsp;+&nbsp;Redisson、RocketMQ&nbsp;5.x、Apache&nbsp;Tika、Sa-Token前端:React&nbsp;18、TypeScript、Vite代码量:后端约&nbsp;4w&nbsp;行,前端约&nbsp;1.8w&nbsp;行,20&nbsp;张业务表,22&nbsp;个前端页面。和&nbsp;Demo&nbsp;项目的主要区别▪&nbsp;检索方式:Demo&nbsp;通常是单路向量检索,Ragent&nbsp;是多通道并行&nbsp;+&nbsp;后处理流水线。▪&nbsp;意图识别:Demo&nbsp;没有,Ragent&nbsp;做了树形意图&nbsp;+&nbsp;歧义引导。▪&nbsp;模型调用:Demo&nbsp;单模型挂了就挂了,Ragent&nbsp;多候选路由&nbsp;+&nbsp;熔断降级。▪&nbsp;会话记忆:Demo&nbsp;全量塞给模型,Ragent&nbsp;滑动窗口&nbsp;+&nbsp;摘要压缩。▪&nbsp;可观测性:Demo&nbsp;没有,Ragent&nbsp;全链路&nbsp;Trace。项目会持续迭代,感兴趣的同学可以&nbsp;clone&nbsp;下来跑一跑,有问题欢迎提&nbsp;Issue&nbsp;交流。
勇敢的王老五最喜欢春...:我以为是营销号呢,进来看是特么的大佬
AI求职实录
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务