【华为OD机试|01】最远足迹(Java/C/Py/JS)
目录
一、题目介绍
1.1 题目描述
1.2 备注:
1.3 输入描述
1.4 输出描述
1.5 用例
二、Java代码实现
2.1 实现思路
2.2 详细代码
2.3 代码讲解:
三、C语言实现
3.1实现步骤
3.2 实现代码
3.3 代码详解
四、Python实现
4.1 实现步骤
4.2 代码实现
4.3 详细讲解
五、JS实现
5.1 实现步骤
5.2 详细代码
5.3详细讲解
六、总结
一、题目介绍
1.1 题目描述
某探险队负责对地下洞穴进行探险。探险队成员在进行探险任务时,随身携带的记录器会不定期地记录自身的坐标,但在记录的间隙中也会记录其他数据。探索工作结束后,探险队需要获取到某成员在探险过程中相对于探险队总部的最远的足迹位置。
- 仪器记录坐标时,坐标的数据格式为(x,y),如(1,2)、(100,200),其中0<x<1000,0<y<1000。同时存在非法坐标,如(01,1)、(1,01),(0,100)属于非法坐标。
- 设定探险队总部的坐标为(0,0),某位置相对总部的距离为:x*x+y*y。
- 若两个座标的相对总部的距离相同,则第一次到达的坐标为最远的足迹。
- 若记录仪中的坐标都不合法,输出总部坐标(0,0)。
1.2 备注:
不需要考虑双层括号嵌套的情况,比如sfsdfsd((1,2))。
1.3 输入描述
字符串,表示记录仪中的数据。
如:ferga13fdsf3(100,200)f2r3rfasf(300,400)
1.4 输出描述
字符串,表示最远足迹到达的坐标。
如: (300,400)
1.5 用例
| 输入 | ferg(3,10)a13fdsf3(3,4)f2r3rfasf(5,10) |
| 输出 | (5,10) |
| 说明 | 记录仪中的合法坐标有3个: (3,10), (3,4), (5,10),其中(5,10)是相距总部最远的坐标, 输出(5,10)。 |
| 输入 | asfefaweawfaw(0,1)fe |
| 输出 | (0,0) |
| 说明 | 记录仪中的坐标都不合法,输出总部坐标(0,0)。 |
二、Java代码实现
实现这个题目,需要解析字符串中的有效坐标,计算它们到总部 (0,0) 的距离,并找出最远的一个坐标。如果记录中的所有坐标都不合法,我们将返回总部坐标 (0,0)。
2.1 实现思路
实现步骤如下:
- 解析字符串:提取出所有合法的坐标。
- 验证坐标合法性:确保坐标满足格式要求,且 x 和 y 在 (0,1000) 之间。
- 计算距离:计算每个合法坐标到总部 (0,0) 的距离。
- 找出最远的坐标:在所有合法坐标中找出距离最大的那个。
- 处理异常情况:如果没有合法坐标,返回总部坐标 (0,0)。
2.2 详细代码
下面是具体实现代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class CaveExploration {public static void main(String[] args) {String input = "ferga13fdsf3(100,200)f2r3rfasf(300,400)";System.out.println(findFarthestCoordinate(input));}public static String findFarthestCoordinate(String input) {// 定义正则表达式以提取合法的坐标Pattern pattern = Pattern.compile("\\((\\d{1,3}),(\\d{1,3})\\)");Matcher matcher = pattern.matcher(input);String farthestCoordinate = "(0,0)";int maxDistance = 0;while (matcher.find()) {String xStr = matcher.group(1);String yStr = matcher.group(2);int x = Integer.parseInt(xStr);int y = Integer.parseInt(yStr);// 检查坐标是否合法if (isValidCoordinate(xStr, yStr, x, y)) {int distance = x * x + y * y;if (distance > maxDistance) {maxDistance = distance;farthestCoordinate = "(" + x + "," + y + ")";}}}return farthestCoordinate;}// 验证坐标是否合法private static boolean isValidCoordinate(String xStr, String yStr, int x, int y) {return x > 0 && x < 1000 && y > 0 && y < 1000 &&!xStr.startsWith("0") && !yStr.startsWith("0");}
}
2.3 代码讲解:
1. 字符串解析
在Java中,我们使用正则表达式提取字符串中的坐标。
Pattern pattern = Pattern.compile("\\((\\d{1,3}),(\\d{1,3})\\)");
Matcher matcher = pattern.matcher(input);
解析思路:
- 使用正则表达式
\\((\\d{1,3}),(\\d{1,3})\\)匹配形如(x,y)的坐标,其中 x 和 y 是 1 到 3 位的数字。 matcher.find()用于在输入字符串中查找所有符合正则表达式的子字符串。
2. 合法性验证
通过解析得到的字符串,进一步验证它们是否合法。
private static boolean isValidCoordinate(String xStr, String yStr, int x, int y) {return x > 0 && x < 1000 && y > 0 && y < 1000 &&!xStr.startsWith("0") && !yStr.startsWith("0");
}
验证思路:
- 坐标 x 和 y 必须在 (0,1000) 范围内。
- 坐标字符串不能以 "0" 开头,除非它是单个 "0"。
3. 距离计算
计算每个合法坐标到总部 (0,0) 的距离。
通过这种方式,可以确保找出距离总部最远的合法坐标,并处理非法坐标和无坐标的情况。
三、C语言实现
使用C语言实现这个题目,我们需要解析字符串中的有效坐标,计算它们到总部 (0,0) 的距离,并找出最远的一个坐标。如果记录中的所有坐标都不合法,我们将返回总部坐标 (0,0)。
3.1实现步骤
- 解析字符串:提取出所有合法的坐标。
- 验证坐标合法性:确保坐标满足格式要求,且 x 和 y 在 (0,1000) 之间。
- 计算距离:计算每个合法坐标到总部 (0,0) 的距离。
- 找出最远的坐标:在所有合法坐标中找出距离最大的那个。
- 处理异常情况:如果没有合法坐标,返回总部坐标 (0,0)。
3.2 实现代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>// 判断是否是合法的坐标
int isValidCoordinate(char *xStr, char *yStr, int x, int y) {return x > 0 && x < 1000 && y > 0 && y < 1000 && (xStr[0] != '0' || strlen(xStr) == 1) && (yStr[0] != '0' || strlen(yStr) == 1);
}int main() {char input[] = "ferga13fdsf3(100,200)f2r3rfasf(300,400)";char *ptr = input;char xStr[4], yStr[4];int maxDistance = 0;char farthestCoordinate[10] = "(0,0)";while ((ptr = strstr(ptr, "(")) != NULL) {if (sscanf(ptr, "(%3[0-9],%3[0-9])", xStr, yStr) == 2) {int x = atoi(xStr);int y = atoi(yStr);if (isValidCoordinate(xStr, yStr, x, y)) {int distance = x * x + y * y;if (distance > maxDistance) {maxDistance = distance;sprintf(farthestCoordinate, "(%d,%d)", x, y);}}}ptr++;}printf("%s\n", farthestCoordinate);return 0;
}
3.3 代码详解
1. 字符串解析
在C语言中,我们使用 strstr 和 sscanf 来解析字符串。
while ((ptr = strstr(ptr, "(")) != NULL) {if (sscanf(ptr, "(%3[0-9],%3[0-9])", xStr, yStr) == 2) {...}ptr++;
}
2.解析思路:
- 使用
strstr查找字符串中第一个(的位置。 - 使用
sscanf提取括号中的数字对,格式为(%3[0-9],%3[0-9]),确保读取的数字不超过3位。
2. 合法性验证
通过解析得到的字符串,进一步验证它们是否合法。
int isValidCoordinate(char *xStr, char *yStr, int x, int y) {return x > 0 && x < 1000 && y > 0 && y < 1000 && (xStr[0] != '0' || strlen(xStr) == 1) && (yStr[0] != '0' || strlen(yStr) == 1);
}
验证思路:
- 坐标 x 和 y 必须在 (0,1000) 范围内。
- 坐标字符串不能以 "0" 开头,除非它是单个 "0"。
3. 距离计算
计算每个合法坐标到总部 (0,0) 的距离。
int distance = x * x + y * y;
计算思路:
- 使用欧几里得距离的平方来比较不同坐标的远近,公式为
distance = x * x + y * y。
4. 找出最远的坐标
在所有合法坐标中找出距离最大的那个。
if (distance > maxDistance) {maxDistance = distance;sprintf(farthestCoordinate, "(%d,%d)", x, y);
}
思路:
- 使用变量
maxDistance记录最大距离,每次计算新的距离后与之比较,更新最大距离和最远坐标。
四、Python实现
使用Python实现这个题目同样需要解析字符串中的有效坐标,计算它们到总部 (0,0) 的距离,并找出最远的一个坐标。如果记录中的所有坐标都不合法,我们将返回总部坐标 (0,0)。
4.1 实现步骤
- 解析字符串:提取出所有合法的坐标。
- 验证坐标合法性:确保坐标满足格式要求,且 x 和 y 在 (0,1000) 之间。
- 计算距离:计算每个合法坐标到总部 (0,0) 的距离。
- 找出最远的坐标:在所有合法坐标中找出距离最大的那个。
- 处理异常情况:如果没有合法坐标,返回总部坐标 (0,0)。
4.2 代码实现
import redef find_farthest_coordinate(data):# 定义正则表达式以提取合法的坐标pattern = re.compile(r'\((\d{1,3}),(\d{1,3})\)')matches = pattern.findall(data)max_distance = 0farthest_coordinate = "(0,0)"for match in matches:x_str, y_str = matchx = int(x_str)y = int(y_str)# 检查坐标是否合法if is_valid_coordinate(x_str, y_str, x, y):distance = x * x + y * yif distance > max_distance:max_distance = distancefarthest_coordinate = f"({x},{y})"return farthest_coordinatedef is_valid_coordinate(x_str, y_str, x, y):# 验证坐标是否合法return 0 < x < 1000 and 0 < y < 1000 and \not (x_str.startswith("0") and len(x_str) > 1) and \not (y_str.startswith("0") and len(y_str) > 1)# 示例输入
input_data = "ferga13fdsf3(100,200)f2r3rfasf(300,400)"
print(find_farthest_coordinate(input_data)) # 输出: (300,400)
4.3 详细讲解
1. 字符串解析
在Python中,我们使用正则表达式提取字符串中的坐标。
pattern = re.compile(r'\((\d{1,3}),(\d{1,3})\)')
matches = pattern.findall(data)
解析思路:
- 使用正则表达式
\((\d{1,3}),(\d{1,3})\)匹配形如(x,y)的坐标,其中 x 和 y 是 1 到 3 位的数字。 findall方法返回所有匹配的坐标对。
2. 合法性验证
通过解析得到的字符串,进一步验证它们是否合法。
def is_valid_coordinate(x_str, y_str, x, y):return 0 < x < 1000 and 0 < y < 1000 and \not (x_str.startswith("0") and len(x_str) > 1) and \not (y_str.startswith("0") and len(y_str) > 1)
验证思路:
- 坐标 x 和 y 必须在 (0,1000) 范围内。
- 坐标字符串不能以 "0" 开头,除非它是单个 "0"。
3. 距离计算
计算每个合法坐标到总部 (0,0) 的距离。
distance = x * x + y * y
计算思路:
- 使用欧几里得距离的平方来比较不同坐标的远近,公式为
distance = x * x + y * y。
4. 找出最远的坐标
在所有合法坐标中找出距离最大的那个。
if distance > max_distance:max_distance = distancefarthest_coordinate = f"({x},{y})"
思路:
- 使用变量
max_distance记录最大距离,每次计算新的距离后与之比较,更新最大距离和最远坐标。
5. 处理异常情况
如果没有合法坐标,最远的坐标默认为 (0,0)。
max_distance = 0
farthest_coordinate = "(0,0)"
思路:
- 初始时将最远坐标设为
(0,0),如果找到合法坐标,更新为最远坐标。
通过上述步骤,可以在Python中实现解析字符串并找出距离总部最远的合法坐标,并处理非法坐标和无坐标的情况。
五、JS实现
使用JavaScript实现这个题目同样需要解析字符串中的有效坐标,计算它们到总部 (0,0) 的距离,并找出最远的一个坐标。如果记录中的所有坐标都不合法,我们将返回总部坐标 (0,0)。
5.1 实现步骤
- 解析字符串:提取出所有合法的坐标。
- 验证坐标合法性:确保坐标满足格式要求,且 x 和 y 在 (0,1000) 之间。
- 计算距离:计算每个合法坐标到总部 (0,0) 的距离。
- 找出最远的坐标:在所有合法坐标中找出距离最大的那个。
- 处理异常情况:如果没有合法坐标,返回总部坐标 (0,0)。
5.2 详细代码
function findFarthestCoordinate(data) {// 定义正则表达式以提取合法的坐标const pattern = /\((\d{1,3}),(\d{1,3})\)/g;let matches;let maxDistance = 0;let farthestCoordinate = "(0,0)";while ((matches = pattern.exec(data)) !== null) {const xStr = matches[1];const yStr = matches[2];const x = parseInt(xStr, 10);const y = parseInt(yStr, 10);// 检查坐标是否合法if (isValidCoordinate(xStr, yStr, x, y)) {const distance = x * x + y * y;if (distance > maxDistance) {maxDistance = distance;farthestCoordinate = `(${x},${y})`;}}}return farthestCoordinate;
}// 验证坐标是否合法
function isValidCoordinate(xStr, yStr, x, y) {return x > 0 && x < 1000 && y > 0 && y < 1000 &&!(xStr.startsWith("0") && xStr.length > 1) &&!(yStr.startsWith("0") && yStr.length > 1);
}// 示例输入
const inputData = "ferga13fdsf3(100,200)f2r3rfasf(300,400)";
console.log(findFarthestCoordinate(inputData)); // 输出: (300,400)
5.3详细讲解
1. 字符串解析
在JavaScript中,我们使用正则表达式提取字符串中的坐标。
const pattern = /\((\d{1,3}),(\d{1,3})\)/g;
let matches;
解析思路:
- 使用正则表达式
\((\d{1,3}),(\d{1,3})\)匹配形如(x,y)的坐标,其中 x 和 y 是 1 到 3 位的数字。 pattern.exec(data)用于在输入字符串中查找所有符合正则表达式的子字符串。
2. 合法性验证
通过解析得到的字符串,进一步验证它们是否合法。
function isValidCoordinate(xStr, yStr, x, y) {return x > 0 && x < 1000 && y > 0 && y < 1000 &&!(xStr.startsWith("0") && xStr.length > 1) &&!(yStr.startsWith("0") && yStr.length > 1);
}
验证思路:
- 坐标 x 和 y 必须在 (0,1000) 范围内。
- 坐标字符串不能以 "0" 开头,除非它是单个 "0"。
3. 距离计算
计算每个合法坐标到总部 (0,0) 的距离。
const distance = x * x + y * y;
计算思路:
- 使用欧几里得距离的平方来比较不同坐标的远近,公式为
distance = x * x + y * y。
4. 找出最远的坐标
在所有合法坐标中找出距离最大的那个。
if (distance > maxDistance) {maxDistance = distance;farthestCoordinate = `(${x},${y})`;
}
思路:
- 使用变量
maxDistance记录最大距离,每次计算新的距离后与之比较,更新最大距离和最远坐标。
5. 处理异常情况
如果没有合法坐标,最远的坐标默认为 (0,0)。
let maxDistance = 0;
let farthestCoordinate = "(0,0)";
思路:
- 初始时将最远坐标设为
(0,0),如果找到合法坐标,更新为最远坐标。
通过上述步骤,我们可以在JavaScript中实现解析字符串并找出距离总部最远的合法坐标,并处理非法坐标和无坐标的情况。
六、总结
在上述问题中,我们通过解析记录字符串找到距离总部 (0,0) 最远的合法坐标。我们分别使用了Java、C、Python和JavaScript四种语言实现了解决方案。
下期见啦~🥰
相关文章:
【华为OD机试|01】最远足迹(Java/C/Py/JS)
目录 一、题目介绍 1.1 题目描述 1.2 备注: 1.3 输入描述 1.4 输出描述 1.5 用例 二、Java代码实现 2.1 实现思路 2.2 详细代码 2.3 代码讲解: 三、C语言实现 3.1实现步骤 3.2 实现代码 3.3 代码详解 四、Python实现 4.1 实现步骤 4.2 …...
conda安装管理配置
原文链接:conda管理配置 导言 安装卸载 卸载 卸载 docker sudo rm -r /opt/anaconda3 #conda安装位置安装 从镜像archive中下载sh脚本安装 bash ./software/Anaconda3-2024.02-1-Linux-x86_64.sh -b -p /opt/anaconda3 #conda安装位置管理 查看 conda --ver…...
鸿蒙开发HarmonyOS NEXT(一)
最近总听见大家讨论鸿蒙,前端转型的好方向?先入门学习下 目前官方版本和文档持续更新中 一、开发环境 提示:要占用的空间比较多,建议安装在剩余空间多的盘 1、下载:官网最新工具 - 下载中心 - 华为开发者联盟 (huaw…...
新能源革命风起云涌:创新科技引领可持续发展新篇章
随着全球气候变化和环境问题日益严峻,新能源革命正以其不可阻挡的势头,席卷着世界的每一个角落。 创新科技在这场革命中发挥着至关重要的作用,它不仅是新能源开发利用的引擎,更是推动可持续发展的关键力量。 新能源革命的核心在于…...
Java之TimeUnit类
1.TimeUnit类介绍 TimeUnit(时间单元)是一个描述时间单元的枚举类,在该枚举类中定义有以下的几个时间单元实例:天(DAYS)、时(HOURS)、分(MINUTES)、秒&#…...
【大数据】大数据时代的黎明
目录 前言 深入解读大数据的本质 大数据的起源与演进轨迹 大数据对社会经济的深远影响 经济领域的革新 社会治理与公共服务的智能化 创新体系的重构 面临的挑战与应对 前言 步入21世纪以来,人类文明正站在一个历史性的转折点上,迎来了大数据时代的…...
多接口分线盒在工业自动化中的重要性与应用
简介 多接口分线盒是现代工业自动化中不可或缺的一个组成部分,它主要用于简化复杂的接线系统,提高效率和可靠性。本文将详细探讨多接口分线盒的定义、功能、以及在工业自动化中的应用情况。 无源多接口分线盒 多接口分线盒的定义与功能 多接口分线盒是…...
C# Modbus设备信息加载的实现方式(2)
GlobalProperties是一个全局的数据,类似CoreData: public class GlobalProperties{public static Device Device { set; get; }public static Action<int, string> AddLog;public static SysAdmin CurrentAdmin;public static ModbusTCP Modbus { …...
mongoDB基本命令操作
文章目录 1. 安装(1). 启动mongodb(2). 数据库连接 2. 基本命令(1) 数据库操作(2) 集合操作(3) 文档操作1) 简单查询2) 条件查询3) 投影查询4) 文档更新5) 列值增长修改6) 删除文档7) 分页查询8) 排序查询9) 正则查询(模糊查询)10) 比较查询11) 包含查询 3. 索引(1) 执行计划 1…...
MySQL索引,事务
一.MySQL索引介绍 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址。在数据十分大的时候,索引可以大大加快查询的速度。这是因为使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数…...
嵌入式软件面试记录(5)
1.FreeRTOS使用,是自己移植的吗,移植过程中设置了多少个任务? 答:是自己移植的,从官网下载的包根据手册移植的。 主要涉及以下几个任务: 主任务:负责系统初始化和创建其他任务。创建队列任务点…...
Linux-笔记 OverlayFS文件系统入门
目录 前言 主要概念 工作原理 特点特性 1、上下合并 2、同名文件覆盖 3、同名目录合并 4、写时拷贝 实操入门 内核配置 挂载文件系统 验证 1、同名文件覆盖 2、同名目录合并 3、写时拷贝 1)验证新增文件或目录 2)验证修改文件 3&…...
Kubernetes面试整理-如何配置和使用Service, Ingress?
在 Kubernetes 中,Service 和 Ingress 是用于管理和暴露应用程序的网络访问的主要资源。以下是如何配置和使用 Service 和 Ingress 的详细指南: Service Service 是一种抽象,用于定义一组 Pod 的逻辑集合,并提供一种访问这些 Pod 的策略。Service 可以使应用程序内部或外部…...
深入浅出:NPM常用命令详解与实践
深入浅出地讲解npm常用命令及其实践,可以帮助开发者更好地理解和使用这个强大的Node.js 包管理工具。以下是一些常用的npm命令及其详细解释和实践案例: 1:初始化项目: 命令:npm init用途:生成一个package…...
IPv6 address status lifetime
IPv6 地址状态转换 Address lifetime (地址生存期) 每个配置的 IPv6 单播地址都有一个生存期设置,该设置确定该地址在必须刷新或替换之前可以使用多长时间。某些地址设置为“永久”并且不会过期。“首选”和“有效”生存期用于指定其使用期限和可用性。 自动配置的…...
OpenVINO部署
OpenVINO部署 什么是 OpenVINO?OpenVINO 的优势安装指南系统要求:安装步骤 环境设置部署示例代码优化和部署步骤详细部署示例 什么是 OpenVINO? OpenVINO(Open Visual Inference and Neural Network Optimization)是由…...
面试题:MySQL优化,项目中举例
目录 一、SQL优化分两部分,如何发现慢SQL和如何优化慢SQL 二、项目举例 一、SQL优化分两部分,如何发现慢SQL和如何优化慢SQL 发现慢SQL有两种方案:第一种是开启我们的慢日志, 第二种就是使用skywalling发现慢的接口,进…...
Spring Boot中的事件驱动编程
Spring Boot中的事件驱动编程 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Spring Boot应用中如何利用事件驱动编程模式,实现…...
代码随想录算法训练营第五十天| 1143.最长公共子序列、1035.不相交的线、53. 最大子序和、392.判断子序列
LeetCode 1143.最长公共子序列 题目链接:https://leetcode.cn/problems/longest-common-subsequence/description/ 文章链接:https://programmercarl.com/1143.%E6%9C%80%E9%95%BF%E5%85%AC%E5%85%B1%E5%AD%90%E5%BA%8F%E5%88%97.html 思路 * dp[i][j]…...
【Redis】数据持久化
https://www.bilibili.com/video/BV1cr4y1671t?p96 https://blog.csdn.net/weixin_54232666/article/details/128821360 单点redis问题: 数据丢失问题:实现Redis数据持久化并发能力问题:搭建主从集群,实现读写分离故障恢复问题&…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
