当前位置: 首页 > news >正文

指针与算法的双人舞:蓝桥杯两道趣味题的降维打击

蓝桥杯奇趣挑战:如何用指针和算法“驯服”无序数组与环形迷宫?

🎩 博客引言

"你是否有过这样的体验?面对一段看似混乱的数组,像解开一团纠缠的耳机线,想用最优雅的方式让它乖乖听话?又或者,站在环形迷宫的起点,明明终点就在眼前,却因找不到最短路径而焦头烂额?
今天,我们将借蓝桥杯算法大赛的两道经典题目,揭秘如何用 指针的精准操作 和 算法的智慧策略 ,让无序数据俯首称臣,让环形迷宫变成坦途!无需复杂代码,只需逻辑的跃迁——准备好了吗?"


📖 博客正文
Part 1 | 蓝桥杯算法大赛:逻辑与代码的竞技场

蓝桥杯作为国内顶尖的IT赛事,其算法赛题以“短小精悍、思维刁钻”著称,既考察选手对基础数据结构(如数组、链表)的掌控力,又挑战其对算法思想(如贪心、双指针、BFS)的灵活运用。今天分析的两道题,正是蓝桥杯“小而美”风格的典型代表。


Part 2 | 题目一:双指针奇偶重排(指针+算法)

💡 问题核心
给定一个数组,要求通过交换操作,使得所有奇数下标元素的值大于相邻的偶数下标元素(从0开始)。例如 [1,3,2,4] 变为 [1,4,2,3]

🔑 算法思路解析

  1. 双指针的默契配合:使用两个指针分别指向奇数下标和偶数下标,逐对检查相邻元素。

  2. 贪心策略的巧思:若发现奇数下标元素小于相邻偶数下标元素,立即交换——这种“局部最优”操作最终能保证全局满足条件。

  3. 边界控制:只需遍历奇数下标(从1开始),确保不越界即可。

⚡ 思维亮点

  • 时间复杂度仅需 O(n),一次遍历解决问题,高效如“外科手术刀”。

  • 无需额外空间,原地操作体现算法设计的简洁之美。

    #include <stdio.h>  // 引入标准输入输出库,用于printf等函数// 交换两个整数的值
    // 参数:a - 指向第一个整数的指针,b - 指向第二个整数的指针
    void swap(int *a, int *b) {int temp = *a;  // 创建临时变量存储a指针指向的值*a = *b;        // 将b指针指向的值赋给a指针指向的内存*b = temp;      // 将临时变量存储的原a值赋给b指针指向的内存
    }/*** 对数组进行重排,使得每个奇数下标元素大于相邻的偶数下标元素* 参数:arr - 待重排的数组指针,size - 数组的长度*/
    void rearrangeArray(int *arr, int size) {// 遍历所有奇数下标(从1开始,每次步进2)for (int i = 1; i < size; i += 2) {// 检查当前奇数位置元素是否小于左侧偶数位置元素(i-1必然存在,因为i>=1)if (arr[i] < arr[i - 1]) {swap(&arr[i], &arr[i - 1]);  // 交换当前奇数位置和左侧偶数位置的元素}// 检查右侧偶数位置是否存在(i+1 < size),且当前奇数位置元素是否小于右侧元素if (i + 1 < size && arr[i] < arr[i + 1]) {swap(&arr[i], &arr[i + 1]);  // 交换当前奇数位置和右侧偶数位置的元素}}
    }int main() {// 初始化测试数组(原始数组:[1, 3, 2, 4])int arr[] = {1, 3, 2, 4};// 计算数组长度:总字节数除以单个元素字节数int size = sizeof(arr) / sizeof(arr[0]);// 调用重排函数处理数组rearrangeArray(arr, size);// 打印格式化结果printf("Array after rearrangement: ");printf("[");  // 输出开头的左方括号for (int i = 0; i < size; i++) {             // 遍历数组所有元素printf(i == 0 ? "%d" : ", %d", arr[i]);   // 三元运算符控制输出格式:首元素不加逗号,后续元素前加逗号}printf("]\n");  // 输出结尾的右方括号和换行符return 0;       // 程序正常退出,返回状态码0
    }

    输出结果:


Part 3 | 题目二:环形数组最短跳跃(算法+指针)

💡 问题核心
在环形数组中,每个元素表示最大跳跃步数,求从起点出发返回自身的最短跳跃次数。若无法返回则输出-1。例如 [2,3,1,1,4] 的答案是2(路径:0→1→0)。

🔑 算法思路解析

  1. BFS的降维打击:将跳跃过程视为层级遍历,用队列记录每一步可达的位置,首次回到起点即为最短路径。

  2. 环形特性的破解:通过取模运算处理环形索引,避免无限循环。

  3. 剪枝优化:记录已访问的位置,防止重复计算。

⚡ 思维亮点

  • 最短路径问题中,BFS天然适合寻找最小步数

  • 环形数组的取模操作(index % n)是解题的灵魂,化“无限”为“有限”。

#include <stdio.h>    // 标准输入输出库(如printf)
#include <stdlib.h>   // 标准库(如动态内存分配、exit函数)
#include <stdbool.h>  // 布尔类型支持(bool, true, false)// 定义队列最大容量(假设足够大以处理题目输入)
#define MAX_QUEUE_SIZE 100000// 队列节点结构体,存储当前位置和已用步数
typedef struct {int pos;   // 当前数组下标(从0开始)int steps; // 到达此位置所需的跳跃次数
} QueueNode;    // 定义结构体类型名为 QueueNodeQueueNode queue[MAX_QUEUE_SIZE]; // 静态数组实现的队列存储空间
int front = 0;                   // 队列头指针(指向下一个要取出的元素位置)
int rear = 0;                    // 队列尾指针(指向下一个要插入的位置)/*** 将元素加入队列尾部* @param pos   当前位置* @param steps 已用步数*/
void enqueue(int pos, int steps) {if (rear >= MAX_QUEUE_SIZE) { // 防止队列溢出(超过容量)fprintf(stderr, "Queue overflow!\n"); // 输出错误信息到标准错误流exit(EXIT_FAILURE);        // 终止程序并返回失败状态}queue[rear].pos = pos;        // 将pos存入队列尾部queue[rear].steps = steps;    // 将steps存入队列尾部rear++;                       // 尾指针后移
}/*** 从队列头部取出元素* @return 队列头部节点*/
QueueNode dequeue() {if (front >= rear) {          // 防止队列下溢(无元素时尝试取出)fprintf(stderr, "Queue underflow!\n");exit(EXIT_FAILURE);}return queue[front++];        // 返回头指针指向的元素,然后头指针后移
}/*** 判断队列是否为空* @return true为空,false非空*/
bool isEmpty() {return front >= rear;         // 当头指针≥尾指针时队列为空
}/*** 计算环形数组返回起点所需的最短跳跃次数* @param arr 环形数组指针* @param n   数组长度* @return 最小跳跃次数,无法返回则-1*/
int minJumps(int *arr, int n) {if (n == 0) return -1;        // 处理空数组直接返回-1// 动态分配并初始化访问标记数组(calloc会清零内存)bool *visited = (bool *)calloc(n, sizeof(bool));front = rear = 0;             // 重置队列指针到初始位置enqueue(0, 0);                // 起点入队(位置0,步数0)visited[0] = true;            // 标记起点已访问// 广度优先搜索(BFS)主循环while (!isEmpty()) {QueueNode current = dequeue();      // 取出队首元素int currentPos = current.pos;        // 当前所在位置int currentSteps = current.steps;    // 当前已用步数int maxJump = arr[currentPos];       // 当前可跳跃的最大步数(由数组值决定)// 遍历所有可能的跳跃步长(从1到maxJump)for (int k = 1; k <= maxJump; k++) {// 正向跳跃计算下一个位置:(currentPos + k) % nint nextPos = (currentPos + k) % n;  // 环形数组取模处理if (nextPos == 0) {               // 如果回到起点0free(visited);                // 释放内存return currentSteps + 1;      // 返回总步数(当前步数+1)}if (!visited[nextPos]) {          // 如果该位置未被访问过visited[nextPos] = true;      // 标记为已访问enqueue(nextPos, currentSteps + 1); // 将新位置和步数入队}// 反向跳跃计算下一个位置:(currentPos - k + n) % nnextPos = (currentPos - k + n) % n;  // +n确保结果非负再取模if (nextPos == 0) {               // 同样检查是否回到起点free(visited);return currentSteps + 1;}if (!visited[nextPos]) {          // 未访问则处理visited[nextPos] = true;enqueue(nextPos, currentSteps + 1);}}}free(visited);           // 释放动态分配的内存return -1;               // 队列空且未找到路径时返回-1
}int main() {// 测试用例:数组 [2,3,1,1,4]int arr[] = {2, 3, 1, 1, 4};int n = sizeof(arr) / sizeof(arr[0]);  // 计算数组长度int result = minJumps(arr, n);         // 调用核心算法函数// 打印输入数组(带方括号)int length = sizeof(arr) / sizeof(arr[0]);printf("[");for (int i = 0; i < length; i++) {printf(i == 0 ? "%d" : ", %d", arr[i]); // 控制逗号格式}printf("]\n");// 打印结果(英文输出,与之前需求一致)printf("Minimum jumps to return to start: %d\n", result); // 输出:2return 0; // 正常结束程序
}

输出结果:

 

Part 4 | 双题对比
双指针奇偶重排”和“环形数组最短跳跃的对比
维度时钟夹角题二进制反码题
核心数学平面几何数论/组合数学
算法范式枚举/方程求解位运算/模式匹配
优化关键运动连续性二进制模式规律
思维挑战物理现象建模数字本质分析
实际应用钟表设计/动画密码学/编码理论
Part 5 | 总结:指针与算法的交响曲

两道题看似差异巨大,却共享同一内核:用指针精准定位问题,用算法高效拆解逻辑

  • 奇偶重排是“静态战场”的闪电战,双指针的简单遍历即可定乾坤;

  • 环形跳跃则是“动态迷宫”的迂回术,BFS的层级推进方显智慧。
    蓝桥杯的题海战术中,掌握这种“一题一宇宙”的思维切换能力,才是真正的降维打击!


📝 博客结语

        算法之美,在于将混沌变为秩序,将不可能化为可能。无论是驯服无序数组,还是征服环形迷宫,背后都是逻辑与想象力的共舞。希望今天的分析能让你感受到:算法不是冰冷的代码,而是解决问题的艺术。

下一次,当你面对一段顽皮的数组时,愿你能微笑着举起指针,对它说:‘乖,站好!’ 

相关文章:

指针与算法的双人舞:蓝桥杯两道趣味题的降维打击

蓝桥杯奇趣挑战&#xff1a;如何用指针和算法“驯服”无序数组与环形迷宫&#xff1f; &#x1f3a9; 博客引言 "你是否有过这样的体验&#xff1f;面对一段看似混乱的数组&#xff0c;像解开一团纠缠的耳机线&#xff0c;想用最优雅的方式让它乖乖听话&#xff1f;又或者…...

C语言 指针(2)

目录 1.指针运算 2.const修饰指针 3.野指针 我们在上篇文章中初步了解了关于指针的基础内容&#xff0c;包括内存地址以及指针变量类型。这篇我们来 讲关于指针的运算以及const修饰指针和野指针相关内容。 1. 指针运算 指针的基本运算有三种&#xff0c;分别是: - 指针-…...

使用Python和Pandas实现的Azure Synapse Dedicated SQL pool权限检查与SQL生成用于IT审计

下面是使用 Python Pandas 来提取和展示 Azure Synapse Dedicated SQL Pool 中权限信息的完整过程&#xff0c;同时将其功能以自然语言描述&#xff0c;并自动构造所有权限设置的 SQL 语句&#xff1a; ✅ 步骤 1&#xff1a;从数据库读取权限信息 我们从数据库中提取与用户、…...

Python基本语法(控制语句)

#控制语句 Python语言的控制语句和其他编程语言类似&#xff0c;常用的有if…else、while、for语句。 案例2一7控制语句 第1组代码&#xff0c;说明if-else语句&#xff1a; #1 print(\n1,if) x,y,z10,20,5 if x>y:print(x>y) else:print(x<y)输出结果: 1,if x<…...

Linux btop 使用教程

简介 btop 是一个基于终端的现代系统资源监控器&#xff0c;具有美观的图形界面、响应快、功能丰富等特点。它支持查看 CPU、内存、磁盘、网络、进程&#xff0c;并可以方便地筛选和管理进程。 功能总览 启动命令&#xff1a; btop界面分为以下几部分&#xff1a; CPU 区域…...

高并发场景下的MySQL生存指南

引言 在2025年全球数字经济峰会上&#xff0c;阿里云披露其核心交易系统单日处理请求量突破万亿次&#xff0c;其中MySQL集群承载了78%的OLTP业务。这标志着数据库系统已进入百万级QPS时代&#xff0c;传统优化手段面临三大挑战&#xff1a; 一、硬件与架构优化&#xff1a;构…...

Ethan独立开发产品日报 | 2025-04-30

1. Daytona 安全且灵活的基础设施&#xff0c;用于运行你的人工智能生成代码。 Daytona Cloud重新定义了AI代理的基础设施&#xff0c;具备低于90毫秒的启动时间、原生性能和有状态执行能力&#xff0c;这些是传统云服务无法比拟的。您可以以前所未有的速度和灵活性来创建、管…...

Mysql常用函数解析

字符串函数 CONCAT(str1, str2, …) 将多个字符串连接成一个字符串。 SELECT CONCAT(Hello, , World); -- 输出: Hello World​​SUBSTRING(str, start, length) 截取字符串的子串&#xff08;起始位置从1开始&#xff09;。 SELECT SUBSTRING(MySQL, 3, 2); -- 输出: SQ…...

donet使用指定版本sdk

ps:来自微软官方方案,实测可行,就是在项目任意目录下在新建 global.json,并配置sdk版本 SDK 使用最新安装的版本 SDK 命令包括 dotnet new 和 dotnet run。 .NET CLI 必须为每个 dotnet 命令选择一个 SDK 版本。 即使在以下情况下&#xff0c;它也会默认使用计算机上安装的最新…...

Android短信监控技术实现:合法合规的远程采集方案

一年经验的全栈程序员&#xff0c;目前头发健在&#xff0c;但不知道能撑多久。 该项目已成功部署并稳定运行于企业生产环境&#xff0c;如需个性化定制方案&#xff0c;欢迎联系作者进行深度合作。 文章目录 前言 一、页面设计 1.页面显示 2.代码实现 二、具体代码实现 1.添加…...

前端项目实践:打造响应式个人简历与实时天气预报应用

在当今前端开发领域&#xff0c;构建实际项目是提升技能的最佳方式。本文将带你完成两个极具实用价值的前端项目&#xff1a;响应式个人简历页面和天气预报Web应用。这两个项目不仅能够丰富你的作品集&#xff0c;还能帮助你掌握现代前端开发的核心技术。 一、响应式个人简历页…...

【C++】extern

本文介绍一些extern在C中的用法 声明与定义分离 C程序员应该都知道单一定义规则ODR 在任何一个翻译单元中&#xff0c;只允许存在任何变量、函数、类类型、枚举类型 、概念 (自 C20 起) 或模板的一个定义&#xff08;其中一些可能具有多个声明&#xff0c;但只允许一个定义&a…...

力扣——23合并升序链表

目录 1:题目描述&#xff1a; 2.算法思想&#xff1a; 3.代码展示&#xff1a; 1:题目描述&#xff1a; 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 示例 1&#xff1a; 输入&#xff…...

Java 泛型参数问题:‘ResponseData.this‘ cannot be referenced from a static contex

问题与处理策略 问题描述 Data AllArgsConstructor NoArgsConstructor public class ResponseData<T> {private Integer code;private String msg;private T data;public static final int CODE_SUCCESS 2001;public static final int CODE_FAIL 3001;public static …...

21 课时精通生成式 AI:微软官方入门指南详解

21课时精通生成式AI&#xff1a;微软官方入门指南详解 引言项目概述分析基本信息项目定位与目标 核心功能详解1. 全面的课程结构2. 多样化的学习内容3. 技术亮点与创新点 安装和使用教程环境要求安装步骤基本使用方法示例代码 应用场景和实际价值适用业务场景实际应用价值效益可…...

WPF嵌入webapi服务器,充当微服务角色

WPF嵌入WebAPI服务器实现微服务角色 一、方案概述 在WPF应用程序中嵌入WebAPI服务器,使其能够同时作为桌面客户端和微服务提供者。这种架构允许WPF应用既作为用户界面,又作为后端服务,适合需要本地处理能力同时又能提供API接口的场景。 二、技术选型 ​​WebAPI框架​​:…...

构建现代分布式云架构的三大支柱:服务化、Service Mesh 与 Serverless

目录 前言1. 服务化架构模式&#xff1a;构建可扩展的基础单元1.1 服务化的定义与演进1.2 在分布式云中的价值1.3 面临的挑战 2. Service Mesh 架构&#xff1a;服务通信的治理中枢2.1 什么是 Service Mesh&#xff1f;2.2 功能与优势2.3 在分布式云中的角色2.4 落地难点 3. Se…...

2025华东杯数学建模B题完整分析论文(共36页)(含模型、代码、数据)

2025华东杯数学建模B题完整分析论文 摘要 一、问题重述 二、问题分析 三、模型假设 四、 模型建立与求解 4.1问题1 4.1.1问题1思路分析 4.1.2问题1模型建立 4.1.3问题1代码 4.1.4问题1求解结果 4.2问题2 4.2.1问题2思路分析 4.2.2问题2模型建立 4.2…...

K8S - 零基础掌握 RBAC - 命名空间安全实战

一、为什么需要 RBAC 权限管理&#xff1f; 真实场景 在企业级 K8S 集群中&#xff0c;不同团队共享同一集群&#xff0c;容易发生权限管理问题&#xff0c;例如&#xff1a; 测试人员误删了生产数据库。 实习生看到了财务系统的敏感配置。 核心需求 确保不同用户 只能在自…...

OpenGL-ES 学习(13) ---- Shader 编译和程序对象

目录 概述创建和编译Shader链接程序对象绘制一个最简单的三角形示例代码 概述 在本节中&#xff0c;我们提供创建 Shader对象&#xff0c;并且编译链接到一个程序对象的完整流程&#xff0c;主要内容如下&#xff1a; Shader 和程序对象概述创建和编译Shader创建和链接程序对…...

今天的python练习题

目录 一、每日一言 二、练习题 三、效果展示 四、下次题目 五、总结 一、每日一言 晚上8点到的&#xff0c;还是会被感动到&#xff0c;有一位列车员同志在检票期间&#xff0c;叫我到列车员专座位上去坐&#xff0c;我很感激他&#xff0c;温暖人心&#xff0c;所以人间填我…...

HarmonyOS应用开发中实现本地化存储的几种方式

Preferences 存储 适用于存储简单的键值对数据&#xff0c;如用户设置、配置信息等。其特点是轻量级、使用简单&#xff0c;适合频繁读取和少量更新的场景&#xff0c;数据存储在本地沙盒中&#xff0c;应用重启后数据保持不变。 获取 Preferences 实例 &#xff1a;使用 data…...

【C++指南】vector(三):迭代器失效问题详解

. &#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《C指南》 期待您的关注 文章目录 一、引言二、reserve 扩容引发的迭代器失效2.1 问题现象2.2 正确实现 三、insert 插入引发的…...

Android面试总结之GC算法篇

一、GC 机制核心原理与算法 面试题 1&#xff1a;Android 中为什么采用分代回收&#xff1f;分代策略如何优化 GC 效率&#xff1f; 标准答案&#xff1a; 分代回收基于对象生命周期的差异&#xff0c;将堆分为年轻代&#xff08;Young Gen&#xff09;和老年代&#xff08;Ol…...

驱动开发系列55 - Linux Graphics QXL显卡驱动代码分析(二)显存管理

一:概述 前面介绍了当内核检测到匹配的PCI设备后,会调用 qxl_pci_probe 初始化设备,其中会调用qxl_device_init 来初始化设备,为QXL设备进行内存映射,资源分配,环形缓冲区初始化,IRQ注册等操作,本文展开说说这些细节,以及介绍下QXL的显存管理。 二:QXL设备初始化细节…...

javaScript——DOM续(六)

滚轮事件 在 Web 开发中监听鼠标滚轮事件时&#xff0c;不同浏览器存在差异。下面是对 onmousewheel、DOMMouseScroll 和标准 wheel 事件的完整说明和兼容写法。 &#x1f300; onmousewheel 事件概览 onmousewheel 是早期浏览器&#xff08;如 IE 和 Chrome&#xff09;支持…...

MySQL 服务搭建

&#x1f4a2;欢迎来到张翊尘的开源技术站 &#x1f4a5;开源如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 在线安装Ubuntu/Debian更新系统包索引安装 MySQL …...

Eigen的使用

https://github.com/PX4/eigen Eigen在Qt中的配置&#xff08;博主亲测&#xff09; 1、Qt中调用 //.pro中-------- INCLUDEPATH \$$PWD/eigen-master//.cpp中------- #include <Eigen/Dense> using namespace Eigen;Matrix2d a; MatrixXd b(2,2); Vector3d v(1,2,3);…...

【云原生】基于Centos7 搭建Redis 6.2 操作实战详解

目录 一、前言 二、Redis 6.2 安装过程 2.1 下载安装包 2.2 安装包解压 2.3 安装包编译 2.3 安装 2.4 启动redis 2.4.1 前台启动&#xff08;不推荐&#xff09; 2.4.2 后启动&#xff08;推荐&#xff09; 2.4.3 关闭redis服务 2.4.4 设置客户端连接 三、写在最后 …...

《TCP/IP详解 卷1:协议》之第九章:IP选路

目录 一、IP选路之IP层工作流程 二、选路原理 三、路由表中的五种不同的标志&#xff08;flag&#xff09; 四、路由表的初始化 1、静态路由表初始化 ①、手动配置 ②、默认网关配置 2、动态路由表初始化 ①、路由协议的作用 ②、直接连接网络的自动发现 五、没有到达…...

HTTP知识速通

一.HTTP的基础概念 首先了解HTTP协议&#xff0c;他是目前主要使用在应用层的一种协议 http被称为超文本传输协议 而https则是安全的超文本传输协议 本章节的内容首先就是对http做一个简单的了解。 HTTP是一种应用层协议&#xff0c;是基于TCP/IP协议来传递信息的。 其中…...

npm命令介绍(Node Package Manager)

文章目录 npm命令全解析简介基础命令安装npm&#xff08;npm -v检插版本&#xff09;初始化项目&#xff08;npm init&#xff09;安装依赖包&#xff08;npm install xxx、npm i xxx&#xff09; 依赖管理精解依赖类型区分&#xff08;生产环境依赖dependencies、开发环境依赖…...

在 Windows 上启用 Telnet 命令

在 Windows 上启用打开 Telnet 命令 Telnet 是一种用于远程访问和管理计算机的协议。尽管存在安全漏洞&#xff0c;Telnet 仍然被广泛用于初始网络硬件配置、远程访问、端口测试等任务。在 Windows 10 和 11 上&#xff0c;可以通过多种方法启用 Telnet 客户端。 使用控制面板…...

网络安全零基础培训 L1-9 PHP连接MySQL数据库

使用MySQLi扩展 MySQLi 是 “MySQL Improved Extension” 的缩写&#xff0c;它是 PHP 用于与 MySQL 数据库进行交互的扩展。 step1&#xff1a;连接数据库 <?php// 定义数据库服务器的地址&#xff0c;通常 localhost 表示本地服务器$servername "服务器地址&quo…...

Python生活手册-文件二进制:从快递柜到生鲜冷链的数据保鲜术

一、快递柜与冷链运输&#xff1a;两种存取哲学 1. 普通快递柜&#xff08;文本模式&#xff09; 日常存取包裹的智能快递柜就像文本模式&#xff0c;系统会自动处理包裹的包装&#xff1a; with open(快递单.txt, r, encodingutf-8) as 快递柜:包裹内容 快递柜.read() # …...

CUDA从入门到放弃

1 CUDA简介 GPU为图形处理器, 也是显卡的“大脑”显卡集成了GPU, 显存和其他电路的硬件GPU: 计算密集型CPU: 逻辑流控制GPU性能指标: 核心数GPU显存容量GPU计算峰值显存带宽 GPU不能单独计算, CPUGPU组成异构计算架构CPU起到控制作用, 一般成为主机(Host), GPU可以看作CPU的协…...

Golang多人在线坦克对战游戏(帧同步)

以下是一个简化但完整的同步帧游戏示例——实现一个多人在线坦克对战游戏。代码分为服务器和客户端两部分,使用UDP协议通信。我们将重点讲解核心同步机制。 项目结构 sync-frame-game/ ├── server/ │ ├── main.go # 游戏服务器主逻辑 │ └── game_stat…...

MySQL | DQL语句-连接查询

MySQL | DQL语句-连接查询 &#x1fa84;个人博客&#xff1a;https://vite.xingji.fun 什么是连接查询 从一张表中查询数据称为单表查询。从两张或更多张表中联合查询数据称为多表查询&#xff0c;又叫做连接查询。什么时候需要使用连接查询&#xff1f; 比如这样的需求&…...

JVM——Java 虚拟机是如何加载 Java 类的?

引入 在 Java 世界的底层运作中&#xff0c;类加载机制扮演着一个既神秘又关键的角色。它就像是一个精心设计的舞台幕后 machinery&#xff0c;确保了 Java 程序能够顺利运行。今天&#xff0c;我们就深入探索 Java 虚拟机&#xff08;JVM&#xff09;是如何加载 Java 类的。 …...

Sigmoid函数导数推导详解

Sigmoid函数导数推导详解 在逻辑回归中&#xff0c;Sigmoid函数的导数推导是一个关键步骤&#xff0c;它使得梯度下降算法能够高效地计算。 1. Sigmoid函数定义 首先回顾Sigmoid函数的定义&#xff1a; g ( z ) 1 1 e − z g(z) \frac{1}{1 e^{-z}} g(z)1e−z1​ 2. 导…...

运维工作中,Ansible常用模块有哪些?

Ansible是一个强大的自动化运维工具&#xff0c;他通过模块来执行各种任务。Ansible的模块库非常丰富&#xff0c;涵盖了系统管理、文件操作、软件包管理、网络配置、云服务等多个领域。以下是Ansible中常见的模块分类及具体模块详细介绍&#xff1a; 系统管理模块 主要用于管…...

内存安全的攻防战:工具链与语言特性的协同突围

一、内存安全&#xff1a;C 开发者永恒的达摩克利斯之剑 在操作系统内核、游戏引擎、金融交易系统等对稳定性要求苛刻的领域&#xff0c;内存安全问题始终是 C 开发者的核心挑战。缓冲区溢出、悬空指针、双重释放等经典漏洞&#xff0c;每年在全球范围内造成数千亿美元的损失。…...

Linux-04-搜索查找类命令

一、find查找文件或目录: 1.基本语法: find指令将从指定目录向下递归地遍历其各个子目录1&#xff0c;将满足条件的文件显示在终端 find[搜索范围] [选项] 2.选项说明: 选项功能-name <查询方式>按照指定的文件名查找模式查找文件-user <用户名>查找属于指定用…...

移动光猫 UNG853H 获取超级管理员账号密码

注&#xff1a;电脑连接光猫&#xff0c;网线不要接2口&#xff08;2口一般是IPTV网口&#xff09; 首先浏览器打开 192.168.1.1&#xff0c;使用光猫背面的用户名密码登录。&#xff08;user用户名&#xff09; 然后在浏览器中另开一个窗口打开以下地址&#xff1a; http://…...

健康生活新主张:全方位养生指南

在追求高品质生活的今天&#xff0c;健康养生早已不是老年人的专属话题&#xff0c;而是每个人都该掌握的生活技能。科学养生不需要复杂的程序&#xff0c;而是通过日常习惯的优化&#xff0c;为身体注入源源不断的活力。 饮食管理是健康的根基。选择天然、少加工的食材&#x…...

py使用uniad原生sdk 3, 放弃Buildozer,使用BeeWare

目前&#xff0c;Buildozer 支持打包&#xff1a; Android&#xff1a;通过 Python for Android。您必须有 Linux 或 OSX computer 才能为 Android 进行编译。 iOS&#xff1a;通过 Kivy iOS。您必须拥有 OSX computer 才能为 iOS 进行编译。 支持其他平台在路线图中&#xf…...

【数据分享】2020年中国高精度森林覆盖数据集(免费获取)

森林作为全球陆地生态系统的主体&#xff0c;分布面积广、结构复杂&#xff0c;承担着调节气候、维护生态安全、改善环境等方面的重要作用。我国的森林资源丰富&#xff0c;据《中国森林资源报告&#xff1a;2014—2018》统计&#xff0c;我国森林覆盖率已经达到23.04%。森林覆…...

(007)Excel 公式的使用

文章目录 逻辑运算公式的参数常用函数引用方式引用工作表和工作簿表格的引用修改公式的计算时机区域交叉引用 逻辑运算 公式的参数 单元格引用&#xff1a;SUM(A1:A24)。字面值&#xff1a;SQRT(121)。字面文本字符串&#xff1a;PROPER(“john.f.smith”)。表达式&#xff1a…...

Vue之脚手架与组件化开发

一、基础知识 1、准备工作 node版本在12以上&#xff08;看情况而变&#xff09; 全局安装vue/cli脚手架&#xff08;不理解的可以去看一下node安装环境配置教程&#xff09; npm i vue/cli -g 2、项目初始化 在终端输入 vue create my-vue-project(这里是名字&#xff0…...

第四章 Maven

01 01. maven-课程介绍 02 02. maven-概述-maven介绍 私服&#xff1a;提高下载效率&#xff0c;让中央仓库不必被反复访问。我们一般用阿里云的私服。 03 03. maven-概述-maven安装 04 04. maven-idea集成-配置及创建maven项目 05 05. maven-idea集成-导入maven项目 06 06. …...