代码随想录算法训练营第十九天
LeetCode题目:
- 77. 组合
- 216. 组合总和 III
- 17. 电话号码的字母组合
- 2537. 统计好子数组的数目(每日一题)
- 516. 最长回文子序列
- 1039. 多边形三角剖分的最低得分
- 543. 二叉树的直径
- 124. 二叉树中的最大路径和
- 2246. 相邻字符不同的最长路径
其他:
今日总结
往期打卡
77. 组合
跳转: 77. 组合
学习: 代码随想录公开讲解
问题:
给定两个整数 n
和 k
,返回范围 [1, n]
中所有可能的 k
个数的组合。
你可以按 任何顺序 返回答案。
思路:
递归传入剩余需选个数,归零终止.
剪枝: 用需选个数可以求出遍历范围,及至少给以后的选择留出足够的数
因为使用dfs,一次只需要存储一条路径即可
使用迭代法需要储存大量的子状态. 而且因为空间需要提前预定义,所以不方便做剪枝.
其上下层之间的操作相对独立,没有明显练习,所以无法做递推.
复杂度:
- 时间复杂度: O ( k 2 ) O(k^2) O(k2)
- 空间复杂度: O ( k ) O(k) O(k)
代码:
class Solution {int k;List<List<Integer>> ans;private final List<Integer> path = new ArrayList<>();void dfs(int n){int d = k-path.size();if(d==0) {ans.add(new ArrayList<>(path));return;}for(int j=n;j>=d;j--){path.add(j);dfs(j-1);path.remove(path.size()-1);}}public List<List<Integer>> combine(int n, int k) {this.k = k;ans = new ArrayList<>();dfs(n);return ans;}
}
216. 组合总和 III
跳转: 216. 组合总和 III
学习: 代码随想录公开讲解
问题:
找出所有相加之和为 n
的 k
个数的组合,且满足下列条件:
- 只使用数字1到9
- 每个数字 最多使用一次
返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。
思路:
递归的终止条件改为两个,和大于n或还需选择数为0
复杂度:
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( 1 ) O(1) O(1)
代码:
class Solution {List<List<Integer>> ans ;List<Integer> path = new ArrayList<>();int sum = 0;int n;void dfs(int k,int start){if(sum>n) return;if(k==0){if(sum==n) ans.add(new ArrayList<>(path));return;}for(int i=start;i<=9;i++){sum+=i;path.add(i);dfs(k-1,i+1);sum-=i;path.remove(path.size()-1);}}public List<List<Integer>> combinationSum3(int k, int n) {ans = new ArrayList<>();this.n = n;dfs(k,1);return ans;}
}
17. 电话号码的字母组合
跳转: 17. 电话号码的字母组合
学习: 代码随想录公开讲解
问题:
给定一个仅包含数字 2-9
的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
思路:
终止条件为按过全部电话键,因为这题求的是全排列,所以没法做剪枝操作
复杂度:
- 时间复杂度: O ( 3 n ) O(3^n) O(3n)
- 空间复杂度: O ( n ) O(n) O(n)
代码:
class Solution {private static final String[] MAPPING = new String[]{ "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};List<String> ans;private char[] path;void backtracking(char[] list,int index){if(index==list.length){ans.add(new String(path));return;}int k = list[index]-50;for(char c:MAPPING[k].toCharArray()){path[index] = c;backtracking(list,index+1);}}public List<String> letterCombinations(String digits) {int n = digits.length();ans = new ArrayList<>();if(n==0) return ans;path = new char[n];backtracking(digits.toCharArray(),0);return ans;}
}
2537. 统计好子数组的数目(每日一题)
跳转: 2537. 统计好子数组的数目
学习: 灵茶山艾府题解
问题:
给你一个整数数组 nums
和一个整数 k
,请你返回 nums
中 好 子数组的数目。
一个子数组 arr
如果有 至少 k
对下标 (i, j)
满足 i < j
且 arr[i] == arr[j]
,那么称它是一个 好 子数组。
子数组 是原数组中一段连续 非空 的元素序列。
思路:
这题可以使用滑动窗口加哈希表,每次收缩到刚好满足条件,计算时加上被抛弃的前缀数
求的是选出两个相同元素,对于单个元素来讲,刚好是0,1,3,6,每次加一个n-1到n
复杂度:
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( n ) O(n) O(n)
代码:
class Solution {public long countGood(int[] nums, int k) {int n = nums.length;Map<Integer,Integer> map = new HashMap<>();int sum = 0;long ans = 0;for(int i=0,pre = 0;i<n;i++){sum+=map.getOrDefault(nums[i],0);map.put(nums[i],map.getOrDefault(nums[i],0)+1);while(sum>=k){map.put(nums[pre],map.get(nums[pre])-1);sum-=map.get(nums[pre]);pre++;// System.out.println(pre);}ans=ans+pre;}return ans;}
}
516. 最长回文子序列
跳转: 516. 最长回文子序列
学习: 灵茶山艾府题解
问题:
给你一个字符串 s
,找出其中最长的回文子序列,并返回该序列的长度。
子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。
思路:
题目中不要求连续,但给出了回文序列的条件.
满足条件就都选,不满足条件留使子串最大的一边
dp数组值的含义是当前区间内能选出的最大的回文子串长度
复杂度:
- 时间复杂度: O ( n 2 ) O(n^2) O(n2)
- 空间复杂度: O ( n ) O(n) O(n)
代码(递推空间优化):
class Solution {public int longestPalindromeSubseq(String s) {int n = s.length();int[] f = new int[n];for(int i=n-1;i>=0;i--){f[i] = 1;int pre = 0;for(int j=i+1;j<n;j++){int tmp = f[j];if(s.charAt(i)==s.charAt(j)) f[j] = pre+2;else f[j] = Math.max(f[j],f[j-1]);pre = tmp;}}return f[n-1];}
}
复杂度:
- 时间复杂度: O ( n 2 ) O(n^2) O(n2)
- 空间复杂度: O ( n 2 ) O(n^2) O(n2)
代码(递归+记忆化搜索):
class Solution {int[][] cache;int dfs(String s,int l,int r){if(l==r) return 1;if(l>r) return 0;if(cache[l][r]!=-1) return cache[l][r];if(s.charAt(l)==s.charAt(r)) return cache[l][r] = dfs(s,l+1,r-1)+2;else return cache[l][r] = Math.max(dfs(s,l+1,r),dfs(s,l,r-1));}public int longestPalindromeSubseq(String s) {cache = new int[s.length()][s.length()];for(int[] i:cache){Arrays.fill(i,-1);}return dfs(s,0,s.length()-1);}
}
代码(递推):
class Solution {public int longestPalindromeSubseq(String s) {int n = s.length();int[][] f = new int[n][n];for(int i=n-1;i>=0;i--){for(int j=0;j<n;j++){if(i==j) f[i][j] = 1;else if(i>j) continue;else {if(s.charAt(i)==s.charAt(j)) f[i][j] = f[i+1][j-1]+2;else f[i][j] = Math.max(f[i+1][j],f[i][j-1]);}} }return f[0][n-1];}
}
1039. 多边形三角剖分的最低得分
跳转: 1039. 多边形三角剖分的最低得分
学习: 灵茶山艾府题解
问题:
你有一个凸的 n
边形,其每个顶点都有一个整数值。给定一个整数数组 values
,其中 values[i]
是第 i
个顶点的值(即 顺时针顺序 )。
假设将多边形 剖分 为 n - 2
个三角形。对于每个三角形,该三角形的值是顶点标记的乘积,三角剖分的分数是进行三角剖分后所有 n - 2
个三角形的值之和。
返回 多边形进行三角剖分后可以得到的最低分 。
思路:
遍历区间找所有可能的三角形,每次划分继续二分区间遍历
复杂度:
- 时间复杂度: O ( n 2 ) O(n^2) O(n2)
- 空间复杂度: O ( n 2 ) O(n^2) O(n2)
代码(递推):
class Solution {public int minScoreTriangulation(int[] values) {int n = values.length;int[][] f = new int[n][n];for(int i = n-3;i>=0;i--){for(int j=i+2;j<n;j++){f[i][j] = Integer.MAX_VALUE;for(int k=i+1;k<j;k++){f[i][j] = Math.min(f[i][j],f[i][k]+f[k][j]+values[i]*values[k]*values[j]);}}}return f[0][n-1];}
}
代码(递归):
class Solution {int[] v;int[][] cache;int dfs(int l,int r){if(r<=l+1) return 0;if(cache[l][r]!=0) return cache[l][r];int min = Integer.MAX_VALUE>>1;for(int i=l+1;i<r;i++){int tmp = dfs(l,i)+dfs(i,r)+v[i]*v[l]*v[r];if(tmp<min) min = tmp;}return cache[l][r]=min;}public int minScoreTriangulation(int[] values) {int n = values.length;cache = new int[n][n];v = values;return dfs(0,n-1);}
}
543. 二叉树的直径
跳转: 543. 二叉树的直径
学习: 灵茶山艾府题解
问题:
给你一棵二叉树的根节点,返回该树的 直径 。
二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root
。
两节点之间路径的 长度 由它们之间边数表示。
思路:
当前最大是左最大+右最大+1
然后返回左右最大的一条数量
复杂度:
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( 1 ) O(1) O(1)
代码:
class Solution {int ans=0;int dfs(TreeNode root){if(root==null) return 0;int l = dfs(root.left);int r = dfs(root.right);ans = Math.max(ans,l+r);return Math.max(l,r)+1;}public int diameterOfBinaryTree(TreeNode root) {dfs(root);return ans;}
}
124. 二叉树中的最大路径和
跳转: 124. 二叉树中的最大路径和
学习: 灵茶山艾府题解
问题:
二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。
路径和 是路径中各节点值的总和。
给你一个二叉树的根节点 root
,返回其 最大路径和 。
思路:
dfs,上一题求数量改求和了
不过需要注意,子树如果为负不应该选,所以可以直接返回时和0比较一下
复杂度:
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( 1 ) O(1) O(1)
代码:
class Solution {int ans=Integer.MIN_VALUE;int dfs(TreeNode root){if(root==null) return 0;int l = dfs(root.left);int r = dfs(root.right);ans = Math.max(ans,l+r+root.val);return Math.max(Math.max(l,r)+root.val,0);}public int maxPathSum(TreeNode root) {dfs(root);return ans;}
}
2246. 相邻字符不同的最长路径
跳转: 2246. 相邻字符不同的最长路径
学习: 灵茶山艾府题解
问题:
给你一棵 树(即一个连通、无向、无环图),根节点是节点 0
,这棵树由编号从 0
到 n - 1
的 n
个节点组成。用下标从 0 开始、长度为 n
的数组 parent
来表示这棵树,其中 parent[i]
是节点 i
的父节点,由于节点 0
是根节点,所以 parent[0] == -1
。
另给你一个字符串 s
,长度也是 n
,其中 s[i]
表示分配给节点 i
的字符。
请你找出路径上任意一对相邻节点都没有分配到相同字符的 最长路径 ,并返回该路径的长度。
思路:
父节点的父节点一定比子节点的父节点小吗? 显然这题不是这样的,我们无法排出一个合理的顺序.
所以这题不能使用倒序遍历,只能自顶向下遍历.
题目中给的是父节点数组,所以需要构造和子节点的哈希.
复杂度:
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( 1 ) O(1) O(1)
代码:
class Solution {private List<Integer>[] g;private char[] s;private int ans;int dfs(int x){int maxLen = 0;for(int y:g[x]){int len = dfs(y)+1;if(s[y]!=s[x]){ans = Math.max(ans,maxLen+len);maxLen = Math.max(maxLen,len);}}return maxLen;}public int longestPath(int[] parent, String s) {int n = parent.length;this.s = s.toCharArray();g = new ArrayList[n];Arrays.setAll(g, e -> new ArrayList<>());for(int i=1;i<n;i++){g[parent[i]].add(i);}dfs(0);return ans+1;}
}
总结
练习了组合回溯以及区间DP,树性DP
回溯算法模板框架:
void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯,撤销处理结果}
}
往期打卡
代码随想录算法训练营第十八天
代码随想录算法训练营第十七天
代码随想录算法训练营周末三
代码随想录算法训练营第十六天
代码随想录算法训练营第十五天
代码随想录算法训练营第十四天
代码随想录算法训练营第十三天
代码随想录算法训练营第十二天
代码随想录算法训练营第十一天
代码随想录算法训练营周末二
代码随想录算法训练营第十天
代码随想录算法训练营第九天
代码随想录算法训练营第八天
代码随想录算法训练营第七天
代码随想录算法训练营第六天
代码随想录算法训练营第五天
代码随想录算法训练营周末一
代码随想录算法训练营第四天
代码随想录算法训练营第三天
代码随想录算法训练营第二天
代码随想录算法训练营第一天
相关文章:
代码随想录算法训练营第十九天
LeetCode题目: 77. 组合216. 组合总和 III17. 电话号码的字母组合2537. 统计好子数组的数目(每日一题)516. 最长回文子序列1039. 多边形三角剖分的最低得分543. 二叉树的直径124. 二叉树中的最大路径和2246. 相邻字符不同的最长路径 其他: 今日总结 往期打卡 77. 组合 跳转: 7…...
MySQL联表查询底层原理
MySQL联表查询底层原理 1. 连接算法概述 MySQL在执行联表查询时,主要使用以下三种算法: 1.1 嵌套循环连接(Nested-Loop Join) -- 基本原理:对于左表的每一行,都要在右表中查找所有匹配的行 -- 示例查询…...
静态链接part2
编译 语义分析 由语义分析器完成,这个步骤只是完成了对表达式的语法层面的分析,它并不了解这个语句是否真的有意义(例如在C语言中两个指针做乘法运算,这个语句在语法上是合法的,但是没有什么意义;还有同样…...
在边缘端进行tensorflow模型的部署(小白初探)
1.配置tensorflow的环境 (我是安装GPU版本的) 建议参考这个博主的文章,确实非常快速! 十分钟安装Tensorflow-gpu2.6.0本机CUDA12 以及numpymatplotlib各包版本协调问题_tensorflow cuda12-CSDN博客 2.学习自制数据集 …...
合成数据如何赋能大模型预训练:效果与效率的双重加速器
目录 合成数据如何赋能大模型预训练:效果与效率的双重加速器 一、预训练模型为何需要合成数据? ✅ 克服真实数据的稀缺与偏倚 ✅ 控制训练内容结构与分布 ✅ 提升学习效率与训练稳定性 二、哪些预训练任务适合用合成数据? 三、如何构建…...
【n8n docker 部署的代理问题】解决n8n部署无法访问openai等外国大模型厂商的api
n8n docker 部署的代理问题:解决无法访问 OpenAI 等外国大模型厂商的 API 问题背景 在使用 n8n 进行自动化工作流开发时,经常需要调用 OpenAI 等外国大模型厂商的 API。然而,由于网络限制,直接部署的 n8n 容器无法访问这些 API …...
MongoDB 分账号限制数据访问
MongoDB 分账号限制数据访问 在 MongoDB 中,可以通过几种方式实现不同账号只能访问特定数据的需求,类似于你在 PostgreSQL 中实现的功能。 1. 基于角色的访问控制 (RBAC) 创建用户并分配角色 // 创建只能读取特定数据库的用户 use admin db.createUs…...
可控硅的工作原理和设计参考
可控硅物理结构如下图所示,P-N-P-N,就象两只背靠背的三极管。我们先来分析栅极不作电气联接的情况。当可控硅阴极电位大于阳极电位,J1和J3结反偏,器件截止。当可控硅阴极电位小于阳极电位,J1和J3正偏,但J2反…...
搭建axure cloud私有化平台
要求 https://blog.csdn.net/ss810540895/article/details/145833470 能不能找个空闲服务器,搭建一下 axure服务器,之前他们提供的免费服务终止了,我们需要尽快搭建一下服务。 步骤 mysql 数据库密码 Tbit36987. 分配权限 CREATE USER root…...
【无标题】spark SQL核心编程
MySQL Spark SQL 可以通过 JDBC 从关系型数据库中读取数据的方式创建 DataFrame,通过对 DataFrame 一系列的计算后,还可以将数据再写回关系型数据库中。 IDEA通过JDBC对MySQL进行操作: 1) 导入依赖 <dependency> &l…...
PostgreSql dump导入问题集合
PostgreSql dump导入问题集合 删除数据库无法删除问题 SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datnametest AND pid<>pg_backend_pid();版本检查 pg_restore -l D:/suian/vrms2_backup.dump > D:/suian/vrms22list.txt…...
使用DeepSeek如何提升课题申报书中研究内容的专业性?25个进阶DeepSeek指令
家人们!搞课题申报的是不是都知道,课题申报书里的研究内容那可是重中之重,写得专业不专业直接影响申报能不能成功。今天咱就来唠唠怎么用DeepSeek提升课题申报书中研究内容的专业性,我还给大家准备了25个进阶使用小妙招哦…...
文章记单词 | 第33篇(六级)
一,单词释义 poison [ˈpɔɪzn] n. 毒药;毒物;有害的思想(或心情等);vt. 毒死;毒害;下毒;在… 中放毒;污染;adj. 有毒的justification [ˌdʒʌ…...
【LangChain核心组件】Memory:让大语言模型拥有持续对话记忆的工程实践
目录 一、Memory架构设计解析 1. 核心组件关系图 2. 代码中的关键实现 二、对话记忆的工程实现 1. 消息结构化存储 2. 动态提示组装机制 三、Memory类型选型指南 四、生产环境优化实践 1. 记忆容量控制 2. 记忆分片策略 3. 记忆检索增强 五、典型问题调试技巧 1. …...
GD32裸机程序-SFUD接口文件记录
SFUD gitee地址 SFUD spi初始化 /********************************************************************************* file : bsp_spi.c* author : shchl* brief : None* version : 1.0* attention : None* date : 25-…...
天元证券|调仓曝光!首批科技基金一季报出炉
4月15日,中欧基金、永赢基金、长城基金等公募基金公司旗下部分权益类基金产品一季报出炉。 券商中国记者梳理发现,永赢信息产业智选混合主要聚焦信息技术领域布局,前十大重仓股中9只股票属于信息技术行业,合计占基金资产净值比例达…...
【开源项目】Excel手撕AI算法深入理解(四):AlphaFold、Autoencoder
项目源码地址:https://github.com/ImagineAILab/ai-by-hand-excel.git 一、AlphaFold AlphaFold 是 DeepMind 开发的突破性 AI 算法,用于预测蛋白质的三维结构。它的出现解决了生物学领域长达 50 年的“蛋白质折叠问题”,被《科学》杂志评为…...
React-router v7 第四章(路由传参)
参数传递 React-router 一共有三种方式进行参数传递,参数传递指的是在路由跳转时,将参数传递给目标路由。 Query方式 Query的方式就是使用 ? 来传递参数,例如: #多个参数用 & 连接 /user?name小满zs&age18跳转方式&…...
常用密码技术初探
记得前几年有一部电影叫做《解除好友2:暗网》,它讲述了主角捡到一台电脑,并用它与好友进行视频通讯,但一名黑客通过网络技术篡改了通讯内容,最终导致所有参与视频通话的人都遭遇不测。 电影当然存在夸张成分ÿ…...
电脑知识 | TCP通俗易懂详解 <二>tcp首部
目录 一、👋🏻前言 二、🖃TCP快递单填写(必填部分) 1.🌸TCP快递单样式 2.🏢填写名称 3.🔢TCP序号 4. ✔️TCP确认号 编辑5.✅️确认号的确认号 6.📏首部长度 …...
09-RocketMQ 深度解析:从原理到实战,构建可靠消息驱动微服务
RocketMQ 深度解析:从原理到实战,构建可靠消息驱动微服务 一、RocketMQ 核心定位与架构探秘 1.1 分布式消息领域的中流砥柱 在分布式系统中,消息队列是实现异步通信、解耦服务、削峰填谷的关键组件。RocketMQ 作为阿里巴巴开源的分布式消息…...
MyBatis 如何使用
1. 环境准备 添加依赖(Maven) 在 pom.xml 中添加 MyBatis 和数据库驱动依赖: <dependencies><!-- MyBatis 核心库 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId&g…...
AI日报 - 2025年04月17日
🌟 今日概览(60秒速览) ▎🤖 AGI突破 | OpenAI新模型或证人类未解定理,研究达Level 4 OpenAI安全博客暗示模型将创造新科学,能连接概念提新实验。CEO预测AI将证明人类未解定理,研究员称已达AGI第四层级。 ▎Ǵ…...
【Leetcode-Hot100】缺失的第一个正数
题目 解答 有一处需要注意,我使用注释部分进行交换值,报错:超出时间限制。有人知道是为什么吗?难道是先给nums[i]赋值后,从而改变了后一项的索引? class Solution(object):def firstMissingPositive(sel…...
Servlet简单示例
Servlet简单示例 文章说明 Servlet 虽然是一门旧技术了,但是它的基础性和广泛性仍然不可忽视;我在实践中发现不少同学经常会被它的一些特性给困惑住;时常出现404等错误,这里我写下这篇文章,介绍Servlet的不同版本的特…...
spring:注解@Component、@Controller、@Service、@Reponsitory
背景 spring框架的一个核心功能是IOC,就是将Bean初始化加载到容器中,Bean是如何加载到容器的,可以使用spring注解方式或者spring XML配置方式。 spring注解方式直接对项目中的类进行注解,减少了配置文件内容,更加便于…...
LLM做逻辑推理题 - 野鸭蛋的故事
题目: 四个旅游家(张虹、印玉、东晴、西雨)去不同的岛屿去旅行,每个人都在岛上发现了野鸡蛋(1个到3个)。4人的年龄各不相同,是由18岁到21岁。已知: ①东晴是18岁。 ②印玉去了A岛。 ③21岁的女…...
Linux的目录结构(介绍,具体目录结构)
目录 介绍 具体目录结构 简洁的目录解释 详细的目录解释 介绍 Linux的文件系统是采用级层式的树状目录结构,在此结构的最上层是根目录“/”。Linux的世界中,一切皆文件(比如:Linux会把硬件映射成文件来管理) 具体目…...
C++Cherno 学习笔记day21 [86]-[90] 持续集成、静态分析、参数计算顺序、移动语义、stdmove与移动赋值操作符
b站Cherno的课[86]-[90] 一、C持续集成二、C静态分析三、C的参数计算顺序四、C移动语义五、stdmove与移动赋值操作符 一、C持续集成 Jenkins 商业软件 二、C静态分析 静态分析器会检查你的代码,并尝试检测各种错误,这些错误 可能是你无意中编写的&am…...
python学习 -- 综合案例1:设计一款基于python的飞机大战小游戏
本文目录 pygame模块介绍核心模块与功能开发流程 本文案例 - 飞机大战开发流程1. 导入必要的库2. 定义常量3. 创建精灵类4. 主程序 运行游戏 总结 pygame模块介绍 Pygame 是基于 Python 的开源、跨平台游戏开发库,依托 SDL(Simple DirectMedia Layer&am…...
开启 Python 编程之旅:基础入门实战班全解析
重要的东西放前面 开启 Python 编程之旅:基础入门实战班全解析 开启Python编程之旅:基础入门实战班全解析 在当下热门的编程语言中,Python凭借简洁易读的语法、强大的功能和丰富的库,在数据科学、人工智能、Web开发等诸多领域大…...
Linux笔记---动静态库(原理篇)
1. ELF文件格式 动静态库文件的构成是什么样的呢?或者说二者的内容是什么? 实际上,可执行文件,目标文件,静态库文件,动态库文件都是使用ELF文件格式进行组织的。 ELF(Executable and Linkable…...
SpringBoot整合Logback日志框架深度实践
一、依赖与默认集成机制 SpringBoot从2.x版本开始默认集成Logback日志框架,无需手动添加额外依赖。当项目引入spring-boot-starter-web时,该组件已包含spring-boot-starter-logging,其底层实现基于LogbackSLF4J组合。这种设计使得开发者只需…...
Spring Boot中接入DeepSeek的流式输出
第一步,添加依赖: <!-- WebFlux 响应式支持 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId> </dependency> 第二步,配置We…...
路由交换网络专题 | 第四章 | 生成树 | VRRP | 边缘端口
拓扑图 (1)SW1、SW2、SW3 三台交换机之间存在环路问题,需要通过生成树协议破环,请简述二层环路可能导致的问题。 因为交换机在收到一个广播帧之后,会对非接收端口进行转发。每台交换机都转发的话,就行形成一…...
SFOS2:常用容器(布局)介绍
一、前言 最近在进行sailfish os的开发,由于在此之前并没有从事过QT开发的工作,所以对这一套颇为生疏,以此记录一下。以下内容不一定完全准确,开发所使用的是Qt Quick 2.6与Sailfish.Silica 1.0两个库。 二、布局 1.Qt Quick 2.…...
VS qt 联合开发环境下的多国语言翻译
添加Linguist 文件方法,如同添加类文件的方式,那样: 其他跟QT的一样的流程,另外在main函数里要注册一下, QTextCodec::setCodecForLocale(textCodec); QTranslator translator5; QString trans5 fi…...
基于 Python 的 ROS2 应用开发全解析
引言 在机器人操作系统(ROS)不断发展的进程中,ROS2 作为新一代的机器人框架,带来了诸多显著的改进与新特性。Python 作为一种简洁、高效且具有强大数据处理能力的编程语言,在 ROS2 应用开发中占据着重要地位。本文将深…...
AI分析师
01 实操 人工 公司需要开发了一个XX系统,在文件夹中包含了XX.csv,其中每一行表示一个XX样本,最后一列为每个样本的标签,现需要设计模型与系统,请按照以下要求完成算法测试。根据要求完成以下任务,将完成的…...
Redis核心数据类型在实际项目中的典型应用场景解析
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 Redis作为高性能的键值存储系统,在现代软件开发中扮演着重要角色。其多样化的数据结构为开发者提供了灵活的解决方案,本文将通过真实项…...
LLamaIndex中经常使用的三个模块
from aiostream import stream from fastapi import Request from fastapi.responses import StreamingResponse from llama_index.core.chat_engine.types import StreamingAgentChatResponse这四个模块每一个都很实用,在实际开发中经常用到,下面我就详…...
Idea集成AI:CodeGeeX开发
当入职新公司,或者调到新项目组进行开发时,需要快速熟悉项目代码 而新的项目代码,可能有很多模块,很多的接口,很复杂的业务逻辑,更加有与之前自己的代码风格不一致的现有复杂代码 更别提很多人写代码不喜…...
软考 中级软件设计师 考点知识点笔记总结 day12 计算机网络基础知识
文章目录 计算机网络基础5.1、计算机网络基础知识5.1.1 计算机网络分类5.1.2 七层网络体系结构5.1.3 网络标准5.1.4 TCP/IP协议族5.1.5 IP地址和IPv6简介5.1.6 Internet服务 计算机网络基础 要求掌握以下内容 5.1、计算机网络基础知识 网络体系结构 传输介质 传输技术 传输…...
【扩散模型(十三)】Break-A-Scene 可控生成,原理与代码详解(中)Cross Attn Loss 代码篇
系列文章目录 【扩散模型(一)】中介绍了 Stable Diffusion 可以被理解为重建分支(reconstruction branch)和条件分支(condition branch)【扩散模型(二)】IP-Adapter 从条件分支的视…...
C语言数字图像处理---2.31统计滤波器
本文介绍空域滤波器中的一种:统计滤波器 [定义与算法] 统计滤波(Statistic Filter)定义:基于图像处理中的邻域统计方法,对邻域内的像素信息进行统计,如基于均值和方差的信息,用于平滑或去噪图像,同时保留边缘信息。 算法步骤如下: 统计滤波器的优点和缺点主要包…...
流程设计实战:流程架构设计六步法
目录 简介 1、梳理业务模式及场景 2、甄别核心业务能力 3、搭建差异化的业务流程框架 4、定义L4流程能力 5、L4流程串联 6、展开L5业务流程 作者简介 简介 以往在设计流程的时候,我多数都是采用的自下而上的方式,从具体场景、具体问题出发去做流…...
SDK游戏盾如何接入?复杂吗?
接入SDK游戏盾(通常指游戏安全防护类SDK,如防DDoS攻击、防作弊、防外挂等功能)的流程和复杂度取决于具体的服务商(如腾讯云、上海云盾等)以及游戏类型和技术架构。以下是一般性的接入步骤、复杂度评估及注意事项&#…...
STM32F103C8T6 单片机入门基础知识及点亮第一个 LED 灯
目录 一、引言 二、STM32F103C8T6 基本特性 1. 内核与性能 2. 存储器 3. 时钟系统 4. GPIO(通用输入输出) 5. 外设 三、开发环境搭建 1. 硬件准备 2. 软件安装 四、点亮第一个 LED 灯 1. 硬件连接 2. 软件实现 (1)创…...
JavaScript Worker池实现教程
JavaScript Worker池实现教程 Worker池是一种管理和复用Web Workers的有效方法,可以在不频繁创建和销毁Worker的情况下,充分利用多线程能力提升应用性能。下面我将详细介绍如何在JavaScript中实现一个功能完善的Worker池。 为什么需要Worker池…...
【统信UOS操作系统】python3.11安装numpy库及导入问题解决
一、安装Python3.11.4 首先来安装Python3.11.4。所用操作系统:统信UOS 前提是准备好Python3.11.4的安装包(可从官网下载(链接)),并解压到本地: 右键,选择“在终端中打开”ÿ…...