【LeetCode Solutions】LeetCode 176 ~ 180 题解
CONTENTS
- LeetCode 176. 第二高的薪水(SQL 中等)
- LeetCode 177. 第 N 高的薪水(SQL 中等)
- LeetCode 178. 分数排名(SQL 中等)
- LeetCode 179. 最大数(中等)
- LeetCode 180. 连续出现的数字(SQL 中等)
LeetCode 176. 第二高的薪水(SQL 中等)
【题目描述】
Employee
表:
+-------------+------+
| Column Name | Type |
+-------------+------+
| id | int |
| salary | int |
+-------------+------+
id 是这个表的主键。
表的每一行包含员工的工资信息。
查询并返回 Employee
表中第二高的不同薪水。如果不存在第二高的薪水,查询应该返回 null
(Pandas 则返回 None
)。
查询结果如下例所示。
【示例 1】
输入:
Employee 表:
+----+--------+
| id | salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+输出:
+---------------------+
| SecondHighestSalary |
+---------------------+
| 200 |
+---------------------+
【示例 2】
输入:
Employee 表:
+----+--------+
| id | salary |
+----+--------+
| 1 | 100 |
+----+--------+输出:
+---------------------+
| SecondHighestSalary |
+---------------------+
| null |
+---------------------+
【分析】
本题有多种解法:
- 方法一:可以先从
Employee
表中查询Salary
列,并且使用DISTINCT
关键字去除重复的工资值。然后使用ORDER BY Salary DESC
将查询结果按照Salary
列的值进行降序排列,接着使用LIMIT 1 OFFSET 1
跳过 1 行,并限制输出结果只有 1 行,也就是只输出第二行。然而,如果没有第二高的薪资,即表里可能只有一条记录,这种情况下查询会返回一个空结果集,而不是NULL
,因此可以使用子查询,如果子查询没有返回任何值,外层的SELECT
会将结果视为NULL
,因此,整个查询会返回NULL
。 - 方法二:先使用
SELECT MAX(Salary) FROM Employee
查询表中的最大工资值,然后将小于最大工资作为查询条件再查一遍表,然后返回查询结果的最大值就是整个表中第二大的值。
【代码】
【方法一】
# Write your MySQL query statement below
SELECT (SELECT DISTINCT SalaryFROM EmployeeORDER BY Salary DESCLIMIT 1 OFFSET 1
) AS SecondHighestSalary;
【方法二】
# Write your MySQL query statement below
SELECT MAX(Salary) AS SecondHighestSalary
FROM Employee
WHERE Salary < (SELECT MAX(Salary) FROM Employee);
LeetCode 177. 第 N 高的薪水(SQL 中等)
【题目描述】
表:Employee
+-------------+------+
| Column Name | Type |
+-------------+------+
| id | int |
| salary | int |
+-------------+------+
id 是该表的主键(列中的值互不相同)。
该表的每一行都包含有关员工工资的信息。
编写一个解决方案查询 Employee
表中第 n n n 高的不同工资。如果少于 n n n 个不同工资,查询结果应该为 null
。
查询结果格式如下所示。
【示例 1】
输入:
Employee table:
+----+--------+
| id | salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
n = 2输出:
+------------------------+
| getNthHighestSalary(2) |
+------------------------+
| 200 |
+------------------------+
【示例 2】
输入:
Employee 表:
+----+--------+
| id | salary |
+----+--------+
| 1 | 100 |
+----+--------+
n = 2输出:
+------------------------+
| getNthHighestSalary(2) |
+------------------------+
| null |
+------------------------+
【分析】
与上一题类似,直接使用第一种方法将偏移量设置为 n − 1 n - 1 n−1 即可,需要注意的是 LIMIT
语句中不能有表达式,要先把 n − 1 n - 1 n−1 计算出来。
也可以使用窗口函数(Window Function)DENSE_RANK()
为工资值按降序排列计算排名。DENSE_RANK()
函数为相同值分配相同的排名,并且不会跳过后续的排名。然后使用 WHERE ranking = N
来过滤数据,保留排名等于传入参数 N
的行,该方法也适用于上一题。
OVER
关键字是 SQL 中用于定义窗口函数的作用范围和行为的关键字,它允许你在一个查询中对一组相关行进行计算,而无需像聚合函数那样将它们分组到一个单独的行中。
【代码】
【方法一】
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGINDECLARE M INT;SET M = N - 1;RETURN (# Write your MySQL query statement below.SELECT (SELECT DISTINCT SalaryFROM EmployeeORDER BY Salary DESCLIMIT 1 OFFSET M));
END
【方法二】
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGINRETURN (# Write your MySQL query statement below.SELECT IF(COUNT(*), RKSalary.Salary, NULL) # count(*) 计算查询结果的数量,若不为空则返回 Salary 列,否则返回 NULLFROM (SELECT Salary, DENSE_RANK() OVER(ORDER BY Salary DESC) as RKFROM Employee) AS RKSalary # 子查询生成的派生表必须有一个别名WHERE RKSalary.RK = N);
END
LeetCode 178. 分数排名(SQL 中等)
【题目描述】
表:Scores
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| id | int |
| score | decimal |
+-------------+---------+
id 是该表的主键(有不同值的列)。
该表的每一行都包含了一场比赛的分数。score 是一个有两位小数点的浮点值。
编写一个解决方案来查询分数的排名。排名按以下规则计算:
- 分数应按从高到低排列。
- 如果两个分数相等,那么两个分数的排名应该相同。
- 在排名相同的分数后,排名数应该是下一个连续的整数。换句话说,排名之间不应该有空缺的数字。
按 score
降序返回结果表。
查询结果格式如下所示。
【示例 1】
Scores 表:
+----+-------+
| id | score |
+----+-------+
| 1 | 3.50 |
| 2 | 3.65 |
| 3 | 4.00 |
| 4 | 3.85 |
| 5 | 4.00 |
| 6 | 3.65 |
+----+-------+输出:
+-------+------+
| score | rank |
+-------+------+
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
+-------+------+
【分析】
上一题中用到的窗口函数 DENSE_RANK()
正适合用来解决本题。此外还有另一种思路,每个分数的排名就是表经过去重后大于等于当前分数的数量,例如对于样例中的 3.85,去重后大于当前数的值为 4.00 和 3.85,即当前数的排名为 2。
【代码】
【方法一】
# Write your MySQL query statement below
SELECT score, DENSE_RANK() OVER(ORDER BY score DESC) AS "rank" # rank 是关键字,因此需要用引号
FROM Scores;
【方法二】
# Write your MySQL query statement below
SELECT S1.score, (SELECT COUNT(DISTINCT S2.score)FROM Scores S2WHERE S2.score >= S1.score
) AS "rank"
FROM Scores S1
ORDER BY S1.score DESC;
LeetCode 179. 最大数(中等)
【题目描述】
给定一组非负整数 nums
,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。
注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。
【示例 1】
输入:nums = [10,2]
输出:"210"
【示例 2】
输入:nums = [3,30,34,5,9]
输出:"9534330"
【提示】
1 < = n u m s . l e n g t h < = 100 1 <= nums.length <= 100 1<=nums.length<=100
0 < = n u m s [ i ] < = 1 0 9 0 <= nums[i] <= 10^9 0<=nums[i]<=109
【分析】
本题的思路也比较难想,需要定义一种新的比较方式:
- a = b ⟺ a b = b a a = b \iff ab = ba a=b⟺ab=ba
- a ≤ b ⟺ a b ≤ b a a \le b \iff ab \le ba a≤b⟺ab≤ba
- a ≥ b ⟺ a b ≥ b a a \ge b \iff ab \ge ba a≥b⟺ab≥ba
例如我们现在有两个数 123 和 45,由于 12345 < 45123 12345 < 45123 12345<45123,因此 123 < 45 123 < 45 123<45。
假设最大的整数表示为: s 1 s 2 s 3 … s n s_1s_2s_3\dots s_n s1s2s3…sn,那么说明该排序算法从大到小排序后的结果为: s 1 ≥ s 2 ≥ s 3 ≥ ⋯ ≥ s n s_1 \ge s_2 \ge s_3 \ge \dots \ge s_n s1≥s2≥s3≥⋯≥sn。若存在 s i < s i + 1 s_i < s_{i + 1} si<si+1 的情况,说明 s i s i + 1 < s i + 1 s i s_is_{i + 1} < s_{i + 1}s_i sisi+1<si+1si,而当前数为最大整数,因此产生了冲突,说明排序算法从大到小排序后的结果一定是最大整数。
到这里还没有完全结束,因为这个比较方式是我们自己定义的,还需要证明这个方式能够正确排序,例如不能出现 a < b a < b a<b、 b < c b < c b<c、 c < a c < a c<a 的情况。这是离散数学中的一个概念,一个能够排序的关系被称为全序关系,需要满足以下三个性质:
- 若 a ≤ b a \le b a≤b 且 b ≤ a b \le a b≤a,则 a = b a = b a=b(反对称性);
- 若 a ≤ b a \le b a≤b 且 b ≤ c b \le c b≤c,则 a ≤ c a \le c a≤c(传递性);
- a ≤ b a \le b a≤b 或 b ≤ a b \le a b≤a(完全性)。
我们证明一下这三个性质:
- 若 a b ≤ b a ab \le ba ab≤ba 且 b a ≤ a b ba \le ab ba≤ab,而其中的比较方式为具有全序关系的字典序比较,因此能推出 a b = b a ab = ba ab=ba;
- 若 a b ≤ b a ab \le ba ab≤ba 且 b c ≤ c b bc \le cb bc≤cb,假设 a , b , c a, b, c a,b,c 的长度分别为 x , y , z x, y, z x,y,z,因此 a b ab ab 的长度等于 b a ba ba,字典序也就可以转化为普通整数的比较,即 a ∗ 1 0 y + b ≤ b ∗ 1 0 x + a ⇒ a ( 1 0 y − 1 ) ≤ b ( 1 0 x − 1 ) ⇒ a b ≤ ( 1 0 x − 1 ) ( 1 0 y − 1 ) a * 10^y + b \le b * 10^x + a \Rightarrow a(10^y - 1) \le b(10^x - 1) \Rightarrow \frac{a}{b} \le \frac{(10^x - 1)}{(10^y - 1)} a∗10y+b≤b∗10x+a⇒a(10y−1)≤b(10x−1)⇒ba≤(10y−1)(10x−1),同理 b c ≤ ( 1 0 y − 1 ) ( 1 0 z − 1 ) \frac{b}{c} \le \frac{(10^y - 1)}{(10^z - 1)} cb≤(10z−1)(10y−1),将两个不等式的左右两边分别同时相乘可以得到 a c ≤ ( 1 0 x − 1 ) ( 1 0 z − 1 ) \frac{a}{c} \le \frac{(10^x - 1)}{(10^z - 1)} ca≤(10z−1)(10x−1),这个式子就表示 a c ≤ c a ac \le ca ac≤ca;
- 显然任何的 a b ab ab 和 b a ba ba 之间都能进行字典序比较,满足完全性。
【代码】
class Solution {
public:string largestNumber(vector<int>& nums) {sort(nums.begin(), nums.end(), [](int a, int b){string sa = to_string(a), sb = to_string(b);return sa + sb > sb + sa;});if (nums[0] == 0) return "0"; // 如果全为 0 那么结果只保留一个 0string res;for (int x: nums) res += to_string(x);return res;}
};
LeetCode 180. 连续出现的数字(SQL 中等)
【题目描述】
表:Logs
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| id | int |
| num | varchar |
+-------------+---------+
在 SQL 中,id 是该表的主键。
id 是一个自增列。
找出所有至少连续出现三次的数字。
返回的结果表中的数据可以按任意顺序排列。
结果格式如下面的例子所示:
【示例 1】
输入:
Logs 表:
+----+-----+
| id | num |
+----+-----+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
| 6 | 2 |
| 7 | 2 |
+----+-----+输出:
Result 表:
+-----------------+
| ConsecutiveNums |
+-----------------+
| 1 |
+-----------------+解释:1 是唯一连续出现至少三次的数字。
【分析】
最简单的方式就是直接查询三个 Logs
表,在 WHERE
语句中判断这三行的 id
是否连续且 num
相等。
此外还可以使用窗口函数 ROW_NUMBER()
为每个分区内的行分配唯一的行号,即使用 CAST(ROW_NUMBER() OVER(PARTITION BY num ORDER BY id) AS SIGNED) AS rn
语句将数据按 num
值分区,使得每个 num
值都有自己的计数序列,接着在每个分区内,按 id
值的升序为行分配行号:
+----+-----+ +----+-----+----+
| id | num | | id | num | rn |
+----+-----+ +----+-----+----+
| 1 | 1 | | 1 | 1 | 1 |
| 2 | 1 | | 2 | 1 | 2 |
| 3 | 1 | => | 3 | 1 | 3 |
| 4 | 2 | | 5 | 1 | 4 |
| 5 | 1 | | 4 | 2 | 1 |
| 6 | 2 | | 6 | 2 | 2 |
| 7 | 2 | | 7 | 2 | 3 |
+----+-----+ +----+-----+----+
CAST(... AS SIGNED)
将 ROW_NUMBER()
的结果转换为有符号整数类型。这是因为 ROW_NUMBER()
返回的是 BIGINT UNSIGNED
类型,而后续的计算需要使用有符号整数。
接下来使用 GROUP BY num, rn - id
语句将查询结果按 num
列以及 rn - id
的计算结果进行分组。目的是识别和组合具有相同 num
值且连续的 id
值的行,因为如果 id
连续,rn - id
的值会相同:
+----+-----+----+---------+
| id | num | rn | rn - id |
+----+-----+----+---------+
| 1 | 1 | 1 | 0 |
| 2 | 1 | 2 | 0 |
| 3 | 1 | 3 | 0 |
| 5 | 1 | 4 | -1 |
| 4 | 2 | 1 | -3 |
| 6 | 2 | 2 | -4 |
| 7 | 2 | 3 | -4 |
+----+-----+----+---------+
最后使用 HAVING COUNT(num) >= 3
语句对 GROUP BY
生成的分组结果进行过滤,只保留满足连续出现至少 3 次相同 num
的组。
【代码】
【方法一】
# Write your MySQL query statement below
SELECT DISTINCT L1.num AS ConsecutiveNums
FROM Logs L1, Logs L2, Logs L3
WHERE L1.id = L2.id - 1 AND L2.id = L3.id - 1 AND L1.num = L2.num AND L2.num = L3.num;
【方法二】
# Write your MySQL query statement below
SELECT DISTINCT num AS ConsecutiveNums
FROM (SELECT id, num, CAST(ROW_NUMBER() OVER(PARTITION BY num ORDER BY id) AS SIGNED) AS rnFROM Logs
) AS Logs_RN
GROUP BY Logs_RN.num, Logs_RN.rn - Logs_RN.id
HAVING COUNT(num) >= 3;
相关文章:
【LeetCode Solutions】LeetCode 176 ~ 180 题解
CONTENTS LeetCode 176. 第二高的薪水(SQL 中等)LeetCode 177. 第 N 高的薪水(SQL 中等)LeetCode 178. 分数排名(SQL 中等)LeetCode 179. 最大数(中等)LeetCode 180. 连续出现的数字…...
Sourcetree安装使用的详细教程
Sourcetree 是由 Atlassian 推出的 免费 Git 图形化客户端,支持 Git 和 Mercurial 仓库管理,适用于 Windows 和 macOS。 一、安装教程 1. 下载 官网地址:Sourcetree | Free Git GUI for Mac and Windows 选择你的平台下载安装包࿰…...
对比学习入门
Yann Lecun在NIPS 2016上提出了著名的“蛋糕比喻”:如果智能是一个蛋糕,蛋糕上的大部分是无监督学习(unsupervised learning),蛋糕上的糖霜是监督学习(supervised learning),而蛋糕上…...
Starrocks 的 ShortCircuit短路径
背景 本文基于 Starrocks 3.3.5 本文主要来探索一下Starrocks在FE端怎么实现 短路径,从而加速点查查询速度。 在用户层级需要设置 enable_short_circuit 为true 分析 数据流: 直接到StatementPlanner.createQueryPlan方法: ... OptExpres…...
Windows远程访问Ubuntu的方法
要在Windows上远程访问Ubuntu系统,以下是几种常见的方法: SSH (Secure Shell):通过Windows命令行远程连接到Ubuntu。 在Ubuntu上,确保安装并启用了SSH服务(通常可以通过sudo apt update && sudo apt install openssh-serv…...
23种设计模式-行为型模式之模板方法模式(Java版本)
Java 模板方法模式(Template Method Pattern)详解 🧠 什么是模板方法模式? 模板方法模式是一种行为型设计模式,定义了一个操作中的算法骨架,将一些步骤的实现延迟到子类中。通过模板方法模式,…...
(undone) MIT6.S081 Lec17 VM for APP 学习笔记
url: https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/lec17-virtual-memory-for-applications-frans/17.1-ying-yong-cheng-xu-shi-yong-xu-ni-nei-cun-suo-xu-yao-de-te-xing 17.1 应用程序使用虚拟内存所需要的特性 今天的话题是用户应用程序使用的虚拟内存…...
值拷贝、浅拷贝和深拷贝
✅ 一、基本概念 1. 值拷贝(Value Copy) 含义:将一个变量的值完整复制到另一个变量中。 对象级别表现:调用的是拷贝构造函数(copy constructor)。 特点:对基本类型或不含动态资源的对象&…...
JWT原理及工作流程详解
JSON Web Token(JWT)是一种开放标准(RFC 7519),用于在各方之间安全传输信息。其核心原理是通过结构化、签名或加密的JSON对象实现无状态身份验证和授权。以下是JWT的工作原理和关键组成部分: 1. JWT结构 J…...
广西某建筑用花岗岩矿自动化监测
1. 项目简介 某矿业有限公司成立于2021年,是由某建筑材料有限公司与个人共同出资成立,矿区面积0.4069平方公里,可开采筑用花岗岩、建筑用砂岩。建筑用花岗岩、建筑用砂岩可利用资源量分别为6338.69万吨、303.39万吨,设计生产规模…...
100个思维模型系列更新完毕!
giszz的粉丝们,到今天为止,思维模型专栏已经更新了100期,正式告一段落了。 以下是为你列出的100个思维模型名字(部分思维模型可能存在多种表述方式,但核心概念一致,这里尽量涵盖不同领域常见的思维模型&am…...
Bitcoin跨链协议Clementine的技术解析:重构DeFi生态的信任边界
2025年5月2日,比特币Rollup项目Citrea在测试网正式推出跨链协议Clementine,其基于BitVM2编程语言构建的信任最小化桥接技术,被视为解决比特币与DeFi生态融合难题的关键突破。本文从技术背景、核心机制、安全模型、应用场景四大维度࿰…...
北斗导航 | RTKLib中重难点技术,公式,代码
Rtklib 一、抗差自适应卡尔曼滤波1. **核心难点**2. **公式与代码实现**二、模糊度固定与LAMBDA算法1. **核心难点**2. **LAMBDA算法实现**3. **部分模糊度固定技术**三、伪距单点定位与误差修正1. **多系统多频点修正**2. **接收机钟差与系统间偏差**四、动态模型与周跳处理1.…...
C++学习之类和对象_1
1. 面向过程与面向对象 C语言是面向过程的,注重过程,通过调用函数解决问题。 比如做番茄炒蛋:买番茄和鸡蛋->洗番茄和打鸡蛋->先炒蛋->把蛋放碟子上->炒番茄->再把蛋倒回锅里->加调料->出锅 而C是面向对象的ÿ…...
Oracle OCP认证考试考点详解083系列14
题记: 本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。 66. 第66题: 题目 解析及答案: 当一个非常大的数据文件被划分为四个部分进行 RMAN 多区段备份时,以下…...
华为欧拉(EulerOS)系统全栈软件部署指南:从 Redis 到 MySQL 实战详解
前言 在国产化操作系统蓬勃发展的背景下,华为欧拉(EulerOS)凭借其稳定性与安全性,成为企业级服务器部署的重要选择。本文基于官方技术文档与最佳实践,详细梳理 Redis 集群、RabbitMQ、JDK、Tomcat 及 MySQL 在欧拉系统…...
YOLO使用CableInspect-AD数据集实现输电线路缺陷检测
输电线路缺陷检测是一个关键的任务,旨在确保电力传输系统的可靠性和安全性。今天我们使用CableInspect-AD数据集进行训练完成缺陷检测,下载的数据集格式如下: 我们需要经过以下步骤: COCO转YOLO 首先是将COCO格式的数据转换为YO…...
全国青少年信息素养大赛 Python编程挑战赛初赛 内部集训模拟试卷五及详细答案解析
博主推荐 所有考级比赛学习相关资料合集【推荐收藏】1、Python比赛 信息素养大赛Python编程挑战赛 蓝桥杯python选拔赛真题详解...
三个线程 a、b、c 并发运行,b,c 需要 a 线程的数据如何解决
说明: 开发中经常会碰到线程并发,但是后续线程需要等待第一个线程执行完返回结果后,才能再执行后面线程。 如何处理呢,今天就介绍两种方法 1、使用Java自有的API即CountDownLatch,进行实现 思考:CountDown…...
python实现点餐系统
使用python实现点餐系统的增加菜品及价格,删除菜品,查询菜单,点菜以及会员折扣价等功能。 代码: 下面展示一些 内联代码片。 # coding utf-8menu {拍黄瓜: 6, 小炒肉: 28, 西红柿炒蛋: 18, 烤鱼: 30, 红烧肉: 38, 手撕鸡: 45,…...
力扣26——删除有序数组中的重复项
目录 1.题目描述: 2.算法分析: 3.代码展示: 1.题目描述: 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对…...
A2A与MCP定义下,User,Agent,api(tool)间的交互流程图
官方图: 流程图: #mermaid-svg-2smjE8VYydjtLH0p {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2smjE8VYydjtLH0p .error-icon{fill:#552222;}#mermaid-svg-2smjE8VYydjtLH0p .error-tex…...
【大模型面试每日一题】Day 13:数据并行与模型并行的区别是什么?ZeRO优化器如何结合二者?
【大模型面试每日一题】Day 13:数据并行与模型并行的区别是什么?ZeRO优化器如何结合二者? 📌 题目重现 🌟🌟 面试官:数据并行与模型并行的区别是什么?ZeRO优化器如何结合二者&…...
各种注解含义及使用
RestController RestController注解 是Spring 4.0引入的一个组合注解,用于简化RESTful Web服务的开发。 RestController注解 相当于 Controller 和 ResponseBody 注解的组合,表示该类是一个控制器,并且所有的方法返回值都将直接写入HTTP响应体…...
amass:深入攻击面映射和资产发现工具!全参数详细教程!Kali Linux教程!
简介 OWASP Amass 项目使用开源信息收集和主动侦察技术执行攻击面网络映射和外部资产发现。 此软件包包含一个工具,可帮助信息安全专业人员使用开源信息收集和主动侦察技术执行攻击面网络映射并执行外部资产发现。 使用的信息收集技术 技术数据来源APIs…...
xxl-job简单入门使用教程
1、从git中拉取xxl-job代码 https://gitee.com/xuxueli0323/xxl-job HTTPS:git clone https://gitee.com/xuxueli0323/xxl-job.git SSH:git clone gitgitee.com:xuxueli0323/xxl-job.git 拉取本地后,使用Idea打开项目,当前使用…...
设置GO程序在离线情况下读取本地缓存的模块
在 Go 中,GOPROXY 环境变量用于指定模块代理服务器的地址。如果你想让 GOPROXY 读取本地的模块,可以通过以下几种方式实现: 1. 使用本地代理服务器 你可以搭建一个本地的 Go 模块代理服务器,将需要的模块代码推送到代理服务器中…...
Python 爬虫基础入门教程(超详细)
一、什么是爬虫? 网络爬虫(Web Crawler),又称网页蜘蛛,是一种自动抓取互联网信息的程序。爬虫会模拟人的浏览行为,向网站发送请求,然后获取网页内容并提取有用的数据。 二、Python爬虫的基本原…...
C语言实现三子棋
目录 1.通过模块化来实现三子棋 2.三子棋代码基本逻辑 3.代码的书写 第一步: 第二步: 第三步: 第四步: gane.h gane.c main.c 第五步: game.h game.c main.c 第六步: game.h game.c main…...
SCDN是什么?
SCDN是安全内容分发网络的简称,它在传统内容分发网络(CDN)的基础上,集成了安全防护能力,旨在同时提升内容传输速度和网络安全性。 SCDN的核心功能有: DDoS防御:识别并抵御大规模分布式拒绝服务…...
Transformer编码器+SHAP分析,模型可解释创新表达!
目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基本介绍 基于SHAP分析的特征选择和贡献度计算,Matlab2023b代码实现;基于MATLAB的SHAP可解释Transformer编码器回归模型,敏感性分析方法。 详细介绍 引言 在正向渗透(…...
机器学习第三讲:监督学习 → 带答案的学习册,如预测房价时需要历史价格数据
机器学习第三讲:监督学习 → 带答案的学习册,如预测房价时需要历史价格数据 资料取自《零基础学机器学习》。 查看总目录:学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署࿱…...
【TACD模拟】质子辐照对GaN器件临界电压增加的影响机制
2013 年,佛罗里达大学的 Erin Patrick 等人基于 TRIM 和 FLOODS 模型,研究了质子辐照对 AlGaN/GaN HEMTs 的影响。研究背景方面,AlGaN/GaN HEMTs 因其宽禁带、高击穿场、高电子迁移率以及优秀的热管理能力,在商业和军事领域应用前景广阔,但长期可靠性仍是问题,尤其是栅极…...
VBA高级应用30例应用4:利用屏蔽事件来阻止自动运行事件
《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以…...
基于SSM实现的健身房系统功能实现八
一、前言介绍: 1.1 项目摘要 随着社会的快速发展和人们健康意识的不断提升,健身行业也在迅速扩展。越来越多的人加入到健身行列,健身房的数量也在不断增加。这种趋势使得健身房的管理变得越来越复杂,传统的手工或部分自动化的管…...
Java设计模式之原型模式详解:从入门到精通
1. 原型模式概述 1.1 定义与核心概念 **原型模式(Prototype Pattern)**是一种创建型设计模式,它通过复制现有对象来创建新对象,而不是通过new关键字实例化。这种模式特别适用于创建成本较高的对象。 专业术语解释表: 术语解释原型(Prototype)被复制的原始对象克隆(Clone)…...
鞋样设计软件
Sxy 64鞋样设计软件是一款专业级鞋类设计工具 专为鞋业设计师与制鞋企业开发 该软件提供全面的鞋样设计功能 包括二维开版 三维建模 放码排料等核心模块 支持从草图构思到成品输出的完整设计流程 内置丰富的鞋型数据库与部件库 可快速生成各种鞋款模板 软件采用智能放码技术 精…...
移动IP与手机移动数据流量的概念、原理、区别与联系
移动IP与手机移动数据流量的概念、原理、区别与联系 文章目录 移动IP与手机移动数据流量的概念、原理、区别与联系一、概念与原理二、核心区别三、联系与协作四、技术挑战与发展趋势五、总结 一、概念与原理 移动IP 定义:移动IP是一种网络层协议,允许设…...
Spring中除DI之外获取 BEAN 的方式
前言 在 Spring 框架的开发实践中,获取 Bean 是极为重要的基础操作。我们熟知通过依赖注入能便捷地获取 Bean,不过在许多场景下,还需要借助其他方式来获取 Bean。本文将深入探讨在 Spring 中除了依赖注入之外获取 Bean 的多种方式,…...
屎上雕花系列-2nd
以下为“屎上雕花”的尝试2nd 使用Deepseek扩容而来,我竟然没有找到明显的错误,太强大了,工作改变生活了 LeCroy 以太网与 SAN 网络测试解决方案 硬件平台一:Xena 以太网流量生成器 Xena 以太网流量生成器是一款高性能的网络测…...
第十五章,SSL VPN
前言 IPSec 和 SSL 对比 IPSec远程接入场景---client提前安装软件,存在一定的兼容性问题 IPSec协议只能够对感兴趣的流量进行加密保护,意味着接入用户需要不停的调整策略,来适应IPSec隧道 IPSec协议对用户访问权限颗粒度划分的不够详细&…...
第四天 从CAN总线到Spark/Flink实时处理
前言 在智能网联汽车快速发展的今天,每辆汽车每天产生的数据量高达数GB。这些数据蕴藏着驾驶行为、车辆健康、道路状况等宝贵信息。本文将带您从零开始,系统学习车辆数据采集与分析的全流程技术体系,包含: CAN总线数据解析与采集…...
pandas中的数据聚合函数:`pivot_table` 和 `groupby`有啥不同?
pivot_table 和 groupby 是 pandas 中两种常用的数据聚合方法,它们都能实现数据分组和汇总,但在使用方式和输出结构上有显著区别。 0. 基本介绍 groupby分组聚合 groupby 是 Pandas 库中的一个功能强大的方法,用于根据一个或多个列对数据进…...
AI客服问答自动生成文章(基于deepseek实现)
小编一直在用AI做网站平台文章的润色或者二创。一直有一个想法,在自己网站加一个AI智能客服,通过文心或者deepseek来智能回答网友提出的问题,这样就能减少很多人工回复的麻烦,提高互动效率。 开发背景 其实很多网友提出的问题非…...
镜头内常见的马达类型(私人笔记)
① 螺杆式马达 驱动来源:机身内马达。镜头尾部有一个接收“螺杆”的接口,通过机械传动带动镜头对焦组。缺点:慢、吵、不能用于无机身马达的相机。✅ 典型镜头:尼康 AF、AF-D 系列;美能达老镜头。尼康传统的AF镜头通过…...
从 JMS 到 ActiveMQ:API 设计与扩展机制分析(一)
引言 在当今的分布式系统开发中,消息中间件扮演着举足轻重的角色,它为应用程序之间提供了可靠的异步通信机制。JMS(Java Message Service)作为 Java 平台上的消息服务规范,定义了一套通用的 API,使得开发者…...
第J7周:ResNeXt解析
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: Tensorflow (二)具体…...
机器学习-无量纲化与特征降维(一)
一.无量纲化-预处理 无量纲,即没有单位的数据 无量纲化包括"归一化"和"标准化",这样做有什么用呢?假设用欧式距离计算一个公司员工之间的差距,有身高(m)、体重(kg&#x…...
Shiro(八):JWT介绍
1、什么是JWT? JWT(JSON Web Token,JSON Web令牌)是一种开放标准(RFC 7519),用于在网络应 用环境间安全地传递声明(claims)作为JSON对象;JWT会按指定的加密算…...
linux0.11内核源码修仙传第十六章——获取硬盘信息
🚀 前言 书接第十四章:linux0.11内核源码修仙传第十四章——进程调度之fork函数,在这一节博客中已经通过fork进程创建了一个新的进程1,并且可以被调度,接下来接着主线继续走下去。希望各位给个三连,拜托啦&…...