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

LeetCode Hot100 31~40

链表

31. K个一组翻转链表

题目不难理解 主要是怎么写出清晰易懂的代码 可以先分成K组 再排序

class Solution {
public:ListNode* reverseKGroup(ListNode* head, int k) {ListNode* dummyHead = new ListNode();dummyHead->next = head;// 首先查看需要翻转几次int count = 0;ListNode* cur = head;while (cur) {cur = cur->next;count++;}int n = count / k; // 根据题目数据范围 n大于等于1ListNode* prevGroupEnd = dummyHead; // 上一组翻转后的链表的尾部while (n--) { // 找到当前翻转组的头部ListNode* curhead = prevGroupEnd->next;ListNode* nexthead = curhead;for (int i = 0; i < k; i++) {nexthead = nexthead->next;}// 翻转当前的 k 个节点ListNode* prev = nexthead;ListNode* curr = curhead;while (curr != nexthead) {ListNode* next = curr->next;curr->next = prev;prev = curr;curr = next;}// 更新prevGroupEnd与当前翻转后的头尾连接prevGroupEnd->next = prev;// 更新prevGroupEnd为当前翻转组的尾部prevGroupEnd = curhead;}return dummyHead->next;}
};

32. 复制带随机指针的链表

哈希表遍历两次搞定

class Solution {
public:Node* copyRandomList(Node* head) {Node* cur = head;unordered_map<Node* , Node*> unmap;while (cur) {if (unmap.count(cur) == 0) {unmap[cur] = new Node(cur->val);}cur = cur->next;}cur = head;while(cur) {if (cur->random == NULL) {unmap[cur]->random = NULL;}else {unmap[cur]->random = unmap[cur->random];}if (cur->next != NULL) {unmap[cur]->next = unmap[cur->next];}else {unmap[cur]->next = NULL;}cur = cur->next;}return unmap[head];}
};

33. 链表排序

要找的是快慢指针的左中点 要快指针先移动一格

class Solution {
public:ListNode* mergesort(ListNode* left, ListNode* right) {if (!left) return right;if (!right) return left;ListNode* dummyHead = new ListNode();ListNode* cur = dummyHead;// 合并两个有序链表while (left && right) {if (left->val < right->val) {cur->next = left;left = left->next;} else {cur->next = right;right = right->next;}cur = cur->next;}if (left) cur->next = left;if (right) cur->next = right;ListNode* result = dummyHead->next;delete dummyHead;return result;}ListNode* sortList(ListNode* head) {if (!head || !head->next) return head;// 使用快慢指针找到链表的中点ListNode* slow = head;ListNode* fast = head->next;while (fast && fast->next) {slow = slow->next;fast = fast->next->next;}// 断开链表ListNode* second = slow->next;slow->next = nullptr;  // 断开链表// 递归排序两部分链表ListNode* first = head;first = sortList(first);second = sortList(second);// 合并排序后的链表return mergesort(first, second);}
};

34. 合并K个升序链表

每两个之间两两合并即可

class Solution {
public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {if (list1 == nullptr) {return list2;} if (list2 == nullptr) {return list1;}ListNode* Head = nullptr;if (list1->val < list2->val) {Head = list1;list1 = list1->next;}else {Head = list2;list2 = list2->next;}ListNode* ans = Head;while (list1 && list2) {ListNode* tmp = nullptr;if (list1->val < list2->val) {tmp = list1;list1 = list1->next;}else {tmp = list2;list2 = list2->next;}Head->next = tmp;Head = Head->next;}while(list1) {Head->next = list1;break;}while(list2) {Head->next = list2;break;}return ans;}ListNode* mergeKLists(vector<ListNode*>& lists) {int n = lists.size();if(n == 0) {return nullptr;}if (n == 1) {return lists[0];}ListNode* ans = lists[0];for (int i = 1; i < n; i++) {ans = mergeTwoLists(ans , lists[i]);}return ans;}
};

35. LRU缓存

哈希表和双向链表的结合 弄明白这两点就很容易做了

struct DLinkedNode {int key, value;DLinkedNode* prev;DLinkedNode* next;DLinkedNode(): key(0), value(0), prev(nullptr), next(nullptr) {}DLinkedNode(int _key, int _value): key(_key), value(_value), prev(nullptr), next(nullptr) {}
};class LRUCache {
private:unordered_map<int, DLinkedNode*> cache;DLinkedNode* head;DLinkedNode* tail;int size;int capacity;public:LRUCache(int _capacity): capacity(_capacity), size(0) {// 使用伪头部和伪尾部节点head = new DLinkedNode();tail = new DLinkedNode();head->next = tail;tail->prev = head;}int get(int key) {if (!cache.count(key)) {return -1;}// 如果 key 存在,先通过哈希表定位,再移到头部DLinkedNode* node = cache[key];moveToHead(node);return node->value;}void put(int key, int value) {if (!cache.count(key)) {// 如果 key 不存在,创建一个新的节点DLinkedNode* node = new DLinkedNode(key, value);// 添加进哈希表cache[key] = node;// 添加至双向链表的头部addToHead(node);++size;if (size > capacity) {// 如果超出容量,删除双向链表的尾部节点DLinkedNode* removed = removeTail();// 删除哈希表中对应的项cache.erase(removed->key);// 防止内存泄漏delete removed;--size;}}else {// 如果 key 存在,先通过哈希表定位,再修改 value,并移到头部DLinkedNode* node = cache[key];node->value = value;moveToHead(node);}}void addToHead(DLinkedNode* node) {node->prev = head;node->next = head->next;head->next->prev = node;head->next = node;}void removeNode(DLinkedNode* node) {node->prev->next = node->next;node->next->prev = node->prev;}void moveToHead(DLinkedNode* node) {removeNode(node);addToHead(node);}DLinkedNode* removeTail() {DLinkedNode* node = tail->prev;removeNode(node);return node;}
};

二叉树

36. 中序遍历

class Solution {
public:vector<int> _inorderTraversal(TreeNode* root , vector<int>& ans) {if (root == nullptr) {return {};}_inorderTraversal(root->left , ans);ans.push_back(root->val);_inorderTraversal(root->right , ans);return ans;}vector<int> inorderTraversal(TreeNode* root) {vector<int> ans;return _inorderTraversal(root , ans);}
};

37. 二叉树的最大高度

class Solution {
public:int maxDepth(TreeNode* root) {if (root == nullptr) {return 0;}int h1 = maxDepth(root->left);int h2 = maxDepth(root->right);return max(h1 , h2) + 1;     }
};

38. 翻转二叉树

class Solution {
public:TreeNode* invertTree(TreeNode* root) {if (root == nullptr) {return nullptr;}auto* left = invertTree(root->left);auto* right = invertTree(root->right);root->left = right;root->right = left;return root;}
};

39. 对称二叉树

class Solution {
public:bool Check(TreeNode* p, TreeNode* q) {if (!q && !p) {return true;}if (!q || !p) {return false;} // 节点值相等,继续递归检查左右子树return p->val == q->val && Check(p->left, q->right) && Check(p->right, q->left);}bool isSymmetric(TreeNode* root) {if (root == nullptr) {return true;}return Check(root->left, root->right);}
};

40. 二叉树的直径

struct info {int dis;  // 当前节点的直径int depth;  // 当前节点的深度info(int _dis, int _depth) {dis = _dis;depth = _depth;}
};class Solution {
public:info* _diameterOfBinaryTree(TreeNode* root) {if (root == nullptr) {return new info(0, 0);  // 空节点的直径为0,深度为0}info* left = _diameterOfBinaryTree(root->left);info* right = _diameterOfBinaryTree(root->right);// 当前节点的直径是左右子树深度之和int diameter = left->depth + right->depth;// 当前节点的深度是左右子树深度的最大值 + 1int depth = std::max(left->depth, right->depth) + 1;// 返回当前节点的直径和深度return new info(std::max(diameter, std::max(left->dis, right->dis)), depth);}int diameterOfBinaryTree(TreeNode* root) {return _diameterOfBinaryTree(root)->dis;}
};

相关文章:

LeetCode Hot100 31~40

链表 31. K个一组翻转链表 题目不难理解 主要是怎么写出清晰易懂的代码 可以先分成K组 再排序 class Solution { public:ListNode* reverseKGroup(ListNode* head, int k) {ListNode* dummyHead new ListNode();dummyHead->next head;// 首先查看需要翻转几次int count…...

C语言(分支练习)

1.输⼊你的⾝⾼和体重&#xff0c;测试你的健康状况。 计算bmi的值&#xff0c; bmi &#xff08;体重&#xff08;kg&#xff09;/⾝⾼&#xff08;m&#xff09;的平⽅) 如果bmi ⼩于18.5&#xff0c; 则显⽰“偏瘦&#xff0c;注意加强营 养” 如果bmi 在18.5和23.9之间&a…...

指针(上)

目录 内存和地址 指针变量和地址 取地址&#xff08;&&#xff09; 解引用&#xff08;*&#xff09; 大小 类型 意义 const修饰 修饰变量 修饰指针 指针运算 指针- 整数 指针-指针 指针的关系运算 野指针 概念 成因 避免 assert断言 指针的使用 strl…...

(笔记)vue3使用Element Plus全局引入icons

如果你想要在项目中直接使用 Element Plus 的图标 icons&#xff0c;而不需要在每次使用的时候都要引入&#xff0c;那么你可以参考本文。 1、图标下载 在使用 Element Plus 的图标前&#xff0c;需要先下载图标库。 npm $ npm install element-plus/icons-vue yarn $ ya…...

基于Matlab卡尔曼滤波的GPS/INS集成导航系统研究与实现

随着智能交通和无人驾驶技术的迅猛发展&#xff0c;精确可靠的导航系统已成为提升车辆定位精度与安全性的重要技术。全球定位系统&#xff08;GPS&#xff09;和惯性导航系统&#xff08;INS&#xff09;在导航应用中各具优势&#xff1a;GPS提供全球定位信息&#xff0c;而INS…...

大学阶段matlab期末考试所有一定会考的函数及其基本格式

1.矩阵操作相关函数 zeros函数 基本功能&#xff1a;创建全零矩阵。基本格式&#xff1a;A zeros(m,n)&#xff0c;其中m和n分别表示矩阵的行数和列数&#xff0c;例如创建一个3X4的全零矩阵A&#xff0c;可以写为A zeros(3,4)。 ones函数 基本功能&#xff1a;创建全 1 矩…...

【linux】(23)对象存储服务-MinIo

MinIO 是一个高性能的对象存储服务&#xff0c;兼容 Amazon S3 API。 Docker安装MinIo 前提条件 确保您的系统已经安装了 Docker。如果还没有安装 Docker&#xff0c;可以参考 Docker 官方文档进行安装。 1. 拉取 MinIO Docker 镜像 首先&#xff0c;从 Docker Hub 拉取 Mi…...

Nginx学习-安装以及基本的使用

一、背景 Nginx是一个很强大的高性能Web和反向代理服务&#xff0c;也是一种轻量级的Web服务器&#xff0c;可以作为独立的服务器部署网站&#xff0c;应用非常广泛&#xff0c;特别是现在前后端分离的情况下。而在开发过程中&#xff0c;我们常常需要在window系统下使用Nginx…...

前端:localstorage, session

学习帖子 —总结— 要快速掌握 localStorage 和 sessionStorage 的核心知识&#xff0c;以下是最重要的20%&#xff0c;这将帮助你理解和操作80%的功能&#xff1a; 基本概念&#xff1a; localStorage 和 sessionStorage 是 Web Storage API 的一部分&#xff0c;用于在客户端…...

剖析一下自己的简历第二条

剖析一下自己的简历第二条 背景前置说明可能会被问到的问题 背景 剖析一下自己简历, 增加对一些专业知识的掌握. 我的简历第二条是这样写的: “2. 熟悉JVM、JMM&#xff0c;包括内存模型&#xff0c;垃圾回收机制&#xff0c;了解其基本调优技巧并具备线上调优经验。”. 前置…...

利用Docker一键发布Nginx-Tomcat-MySQL应用集群

Docker简介&#xff0c;可以看上一篇文章&#xff1a; 为什么互联网公司离不开Docker容器化&#xff0c;它到底解决了什么问题&#xff1f;-CSDN博客 Docker体系结构 docker核心就是镜像和容器&#xff1a; 镜像就是应用程序的安装文件&#xff0c;包含了所有需要的资源&…...

九,[极客大挑战 2019]LoveSQL1

进入靶场 随便输输 试试字符 报错了 根据以上4张图知是单引号闭合 还以为这是flag呢&#xff0c;白激动一场&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;自闭了 有个搞笑的点&#xff0c;其实可以用sqlmap 不过咱不用哈…...

17 go语言(golang) - 错误处理

错误处理 错误处理是编程中用于识别、响应和恢复程序运行时出现的错误和异常情况的过程。其目的是确保程序的鲁棒性&#xff08;一个系统、模型或函数在面对错误输入、工作压力、意外情况或故意攻击时仍能保持稳定性和可靠性的能力&#xff09;&#xff0c;即使在出现错误的情…...

前端跳转路由的时候,清掉缓存

清除路由缓存的方法 ‌使用 $router.push() 方法‌&#xff1a;在跳转路由时&#xff0c;可以通过传递一个包含 replace: true 属性的对象来实现清除路由缓存。例如&#xff1a; this.$router.push({ path: "/new-route", replace: true }); ‌使用 $router.replace…...

CentOS使用chrony服务进行时间同步源设置脚本

CentOS使用chrony服务进行时间同步源设置脚本 #!/bin/bash# Created: 2024-11-26 # Function: Check and Set OS time sync source to 10.0.11.100 # FileName: centos_set_time_source_to_ad.sh # Creator: Anster # Usage: # curl http://webserver-ip/scripts/centos_set…...

AI RPA 影刀基础教程:开启自动化之旅

RPA 是什么 RPA 就是机器人流程自动化&#xff0c;就是将重复的工作交给机器人来执行。只要是标准化的、重复的、有逻辑行的操作&#xff0c;都可以用 RPA 提效 准备 安装并注册影刀 影刀RPA - 影刀官网 安装 Chrome 浏览器 下载链接&#xff1a;Google Chrome 网络浏览器 …...

深入解析Java集合框架:List集合及其实现类的应用与原理

|| 持续分享系列教程&#xff0c;关注一下不迷路 || || B站视频教程&#xff1a;墨轩大楼 || || 知识星球&#xff1a;墨轩编程自习室 || Java集合框架是Java编程语言中一个非常重要的组成部分&#xff0c…...

MySQL需掌握到何种程度?才能胜任工作

大家好&#xff0c;我是袁庭新。星友问&#xff1a;MySQL需要学到什么程度&#xff1f;才能胜任日常的软件开发工作呢&#xff01;以下是一些建议的学习目标和程度&#xff0c;这些目标旨在帮助你在工作中高效地使用MySQL。 数据库的基本概念、MySQL的安装及配置、SQL的概念、S…...

如何使用brew安装phpredis扩展?

如何使用brew安装phpredis扩展&#xff1f; phpredis扩展是一个用于PHP语言的Redis客户端扩展&#xff0c;它提供了一组PHP函数&#xff0c;用于与Redis服务器进行交互。 1、cd到php某一版本的bin下 /usr/local/opt/php8.1/bin 2、下载 phpredis git clone https://githu…...

力扣hot100道【贪心算法后续解题方法心得】(三)

力扣hot100道【贪心算法后续解题方法心得】 十四、贪心算法关键解题思路1、买卖股票的最佳时机2、跳跃游戏3、跳跃游戏 | |4、划分字母区间 十五、动态规划什么是动态规划&#xff1f;关键解题思路和步骤1、打家劫舍2、01背包问题3、完全平方式4、零钱兑换5、单词拆分6、最长递…...

时间同步服务器--Linux中

时间同步服务器 1. 时间同步服务 时间同步:多主机协作工作时&#xff0c;各个主机的时间同步很重要&#xff0c;时间不一致会造成很多重要应用的故障&#xff0c;如:加密协议&#xff0c;日志&#xff0c;集群等&#xff0c;利用NTP(Network Time Protocol )协议使网络中的各…...

银河麒麟V10-SP1设置redis开机自启

前言&#xff1a; redis安装请看&#xff1a;银河麒麟V10-SP1离线安装redis5.0.1_银河麒麟v10 redis5.0-CSDN博客 一、编辑自启文件 vim /etc/systemd/system/redis.service [Unit] DescriptionRedis In-Memory Data Store Afternetwork.target [Service] Typeforking ExecS…...

JVM 之垃圾回收器

一、GC 的分类 1.1 串行 VS 并行 串行回收&#xff1a;指在同一时间段内只允许有一个 CPU 用于执行垃圾回收操作&#xff0c;此时工作线程被暂停&#xff0c;直至垃圾回收结束 在单 CPU 处理器或者较小的应用内存等硬件平台不是特别优越的场合&#xff0c;串行回收器的超过并…...

基于Java Springboot宠物咖微信小程序

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信开发者工具 数…...

求助——AssertionError: Attribute pipeline is missing from configuration.json.

我在本地运行Sunsimiao大模型的时候遇到了“AssertionError: Attribute pipeline is missing from configuration.json.”的问题。在网上找了很多问题都没有解决&#xff0c;求助一下广大网友。有什么好的解决方法吗&#xff1f; 本地环境如上所示&#xff0c;不知是哪里出…...

LearnOpenGL学习(光照 -- 颜色,基础光照,材质,光照贴图)

光照 glm::vec3 lightColor(0.0f, 1.0f, 0.0f); glm::vec3 toyColor(1.0f, 0.5f, 0.31f); glm::vec3 result lightColor * toyColor; // (0.0f, 0.5f, 0.0f); 说明&#xff1a;当我们把光源的颜色与物体的颜色值相乘&#xff0c;所得到的就是这个物体所反射的颜色。 创建…...

vulnhub靶场【哈利波特】三部曲之Aragog

前言 使用virtual box虚拟机 靶机&#xff1a;Aragog : 192.168.1.101 攻击&#xff1a;kali : 192.168.1.16 主机发现 使用arp-scan -l扫描&#xff0c;在同一虚拟网卡下 信息收集 使用nmap扫描 发现22端口SSH服务&#xff0c;openssh 80端口HTTP服务&#xff0c;Apach…...

【开发语言】层次状态机(HSM)介绍

层次状态机&#xff08;Hierarchical State Machine, HSM&#xff09;&#xff0c;从基本原理、结构设计、实现方法以及如何结合 Qt 进行具体实现等方面进行分析。 1. 层次状态机的基本原理 层次状态机是一种用于管理复杂系统行为的状态机模型&#xff0c;它通过将状态组织成…...

Midjourney Imagine API 申请及使用

Midjourney Imagine API 申请及使用 Midjourney 是一款非常强大的 AI 绘图工具&#xff0c;只要输入关键字&#xff0c;就能在短短一两分钟生成十分精美的图像。Midjourney 以其出色的绘图能力在业界独树一帜&#xff0c;如今&#xff0c;Midjourney 早已在各个行业和领域广泛…...

Function Arguments and Function Parameters (函数的实参和函数的形参)

Function Arguments and Function Parameters {函数的实参和函数的形参} 1. Object-Oriented Programming Using C2. Function Arguments and Function ParametersReferences 1. Object-Oriented Programming Using C https://icarus.cs.weber.edu/~dab/cs1410/textbook/index…...

【C语言】递归的内存占用过程

递归 递归是函数调用自身的一种编程技术。在C语言中&#xff0c;递归的实现会占用内存栈&#xff08;Call Stack&#xff09;&#xff0c;每次递归调用都会在栈上分配一个新的 “栈帧&#xff08;Stack Frame&#xff09;”&#xff0c;用于存储本次调用的函数局部变量、返回地…...

六、文本搜索工具(grep)和正则表达式

一、grep工具的使用 1、概念 grep&#xff1a; 是 linux 系统中的一个强大的文本搜索工具&#xff0c;可以按照 正则表达式 搜索文本&#xff0c;并把匹配到的行打印出来&#xff08;匹配到的内容标红&#xff09;。 2、语法 grep [options]…… pattern [file]…… 工作方式…...

spaCy 入门与实战:强大的自然语言处理库

spaCy 入门与实战&#xff1a;强大的自然语言处理库 spaCy 是一个现代化、工业级的自然语言处理&#xff08;NLP&#xff09;库&#xff0c;以高效、易用和功能丰富著称。它被广泛应用于文本处理、信息提取和机器学习任务中。本文将介绍 spaCy 的核心功能&#xff0c;并通过一…...

嵌入式硬件实战提升篇(三)商用量产电源设计方案 三路电源输入设计 电源管理 多输入供电自动管理 DCDC降压

引言&#xff1a;本文你能实际的了解到实战量产产品中电源架构设计的要求和过程&#xff0c;并且从实际实践出发搞懂电源架构系统&#xff0c;你也可以模仿此架构抄板到你自己的项目&#xff0c;并结合硬件篇之前的项目以及理论形成正真的三路电源输入设计与开发板电源架构块供…...

常用排查工具使用

1.spy++ Microsoft Spy++是一个非常好的查看Windows操作系统的窗口、消息、进程、线程信息的工具,简单易用,功能强大。 在vs的工具中默认安装,还可以监控到隐层窗口,通过查看窗口的属性可以获得更多信息,包括规格、窗口、类、进程等信息,可以帮助排查相关窗口的问题。 2…...

用三维模型的顶点法向量计算法线贴图

法线贴图的核心概念是在不增加额外多边形数目的情况下&#xff0c;通过模拟细节来改善光照效果。具体流程包括&#xff1a; 法线的计算与存储&#xff1a;通过法线映射将三维法线向量转化为法线贴图的 RGB 值。渲染中的使用&#xff1a;在片段着色器中使用法线贴图来替代原有的…...

基于Matlab高速动车组转臂定位橡胶节点刚度对车辆动力学影响仿真研究

本研究针对高速动车组转臂定位系统中橡胶节点的刚度对车辆动力学性能的影响进行仿真研究。随着高速铁路的发展&#xff0c;动车组的运行稳定性和舒适性成为设计和运营的核心问题&#xff0c;其中&#xff0c;转臂定位系统作为动车组悬挂系统的重要组成部分&#xff0c;其性能对…...

PostgreSQL认证培训需要什么条件

PostgreSQL认证培训通常没有严格的前置条件&#xff0c;但以下几点可以帮助你更好地准备和通过认证考试&#xff1a; 1、基础知识&#xff1a;具备基本的数据库知识和经验&#xff0c;特别是对SQL有一定的了解。如果你Oracle、MySQL等基础知识&#xff0c;对对你学习PostgreSQ…...

Rust 图形界面开发——使用 GTK 创建跨平台 GUI

第五章 图形界面开发 第一节 使用 GTK 创建跨平台 GUI GTK&#xff08;GIMP Toolkit&#xff09;是一个流行的开源跨平台图形用户界面库&#xff0c;适用于创建桌面应用程序。结合 Rust 的 gtk-rs 库&#xff0c;开发者能够高效地构建现代化 GUI 应用。本节将详细探讨 GTK 的…...

Spring中每次访问数据库都要创建SqlSession吗?

一、SqlSession是什么二、源码分析1&#xff09;mybatis获取Mapper流程2&#xff09;Spring创建Mapper接口的代理对象流程3&#xff09;MapperFactoryBean#getObject调用时机4&#xff09;SqlSessionTemplate创建流程5&#xff09;SqlSessionInterceptor拦截逻辑6&#xff09;开…...

【数据分析】布朗运动(维纳过程)

文章目录 一、概述二、数学布朗运动2.1 数学定义2.2 布朗运动的数学模型2.21 标准布朗运动2.22 布朗运动的路径2.23 布朗运动的方程 三、布朗运动在金融学中的应用四、数学构造&#xff08;以傅里叶级数为例&#xff09;4.1 傅里叶级数的基本思想4.2 构造布朗运动 一、概述 布…...

静态页面 和 动态页面(Java Web开发)

1. 静态页面 1.1 什么是静态页面&#xff1f; 静态页面是指 HTML 文件直接存放在服务器上&#xff0c;不依赖后端逻辑处理而生成内容。客户端浏览器请求静态页面时&#xff0c;服务器直接将文件发送到客户端&#xff0c;浏览器负责渲染页面。 特点&#xff1a; 固定内容&am…...

linux模拟试题

Linux 基础阶段考试笔试模拟试卷 审核人:王旺旺 一.填空题(每题 1 分,共 30 分) 1.验证 httpd 服务是否启动的命令是_______ 答:systemctl status httpd 或 netstat -anptl 或 ss -anpt 2.将目录 xxhf 下所有文件的所属组改为 user1 的命令是_______ 答:chown -R ,user1 …...

Android 使用OpenGLES + MediaPlayer 获取视频截图

概述 Android 获取视频缩略图的方法通常有: ContentResolver: 使用系统数据库MediaMetadataRetriever: 这个是android提供的类&#xff0c;用来获取本地和网络media相关文件的信息ThumbnailUtils: 是在android2.2&#xff08;api8&#xff09;之后新增的一个&#xff0c;该类为…...

典型的1553B网络

典型的1553B网络 1553B总线BUS A和BUS B是互为冗余的、完全对等、物理隔离的两个网络。每一个节点设备也配置有互为冗余的A、B两个1553B接口&#xff0c;分别接入BUS A和BUS B。系统完成初始化配置后&#xff0c;首先采用BUS A来通讯。工作过程中&#xff0c;如果发现BUS A的工…...

【C++】内存管理

【C】内存管理 一、C/C内存分布二、C语言中动态内存管理方式三、C内存管理方式1、new 和 delete 操作内置类型2、new 和 delete 操作自定义类型 四、operator new 和 operator delete 函数五、new 和 delete 的实现原理1、内置类型2、自定义类型3、new和delete不匹配的报错 六、…...

实现PDF文档加密,访问需要密码

01. 背景 今天下午老板神秘兮兮的来问我&#xff0c;能不能做个文档加密功能&#xff0c;就是那种用户下载打开需要密码才能打开的那种效果。boss都发话了&#xff0c;那必须可以。 需求&#xff1a;将 pdf 文档经过加密处理&#xff0c;客户下载pdf文档&#xff0c;打开文档需…...

常见排序算法总结 (三) - 归并排序与归并分治

归并排序 算法思想 将数组元素不断地拆分&#xff0c;直到每一组中只包含一个元素&#xff0c;单个元素天然有序。之后用归并的方式收集跨组的元素&#xff0c;最终形成整个区间上有序的序列。 稳定性分析 归并排序是稳定的&#xff0c;拆分数组时会自然地将元素分成有先后…...

文库 | 从嬴图的技术文档聊起

在技术的浩瀚海洋中&#xff0c;一份优秀的技术文档宛如精准的航海图。它是知识传承的载体&#xff0c;是团队协作的桥梁&#xff0c;更是产品成功的幕后英雄。然而&#xff0c;打造这样一份出色的技术文档并非易事。你是否在为如何清晰阐释复杂技术而苦恼&#xff1f;是否纠结…...

故障诊断 | Transformer-LSTM组合模型的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | Transformer-LSTM组合模型的故障诊断(Matlab) 源码设计 %% 初始化 clear close all clc disp(此程序务必用2023b及其以上版本的MATLAB!否则会报错!) warning off %...