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

【Java数据结构】栈和队列相关算法

第一题:改变元素的序列

例1:若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能一个出栈序列();

A:1,4,3,2                B:2,3,4,1

C:3,1,4,2                D:3,4,2,1

例2:一个栈的初始状态为空,现将元素1,2,3,4,5,A,B,C,D,E依次入栈,然后再次依次出栈,则元素出栈的顺序是();

A:12345ABCDE        B:EDCBA54321

C:ABCDE12345        D:54321EDCBA

题目意思是先把元素全部一个一个入栈,然后再一个一个出栈,得到的结果就是B。

第二题:逆序打印链表

        题目想表达的意思是,对于一个单链表,它只能从头结点打印到尾结点,而不能从尾结点到头结点,所以想让程序员设计一个逆向的打印(通过上节所学的栈来实现)。大概思路就是将一个单链表中的元素都入栈,然后将出栈元素打印即可。

public void reversePrint1(){Stack<Integer> s = new Stack<>();ListNode cur = head;while (cur != null){s.push(cur.val);cur = cur.next;}while (!s.empty()){System.out.print(s.pop()+"  ");}System.out.println();
}

也可以将结点入栈,然后打印出栈结点的值(道理相同)

public void reversePrint(){Stack<ListNode> s = new Stack<ListNode>();ListNode cur = head;while (cur != null){s.push(cur);cur = cur.next;}while (!s.empty()){ListNode top = s.pop();System.out.print(top.val+"   ");}System.out.println();
}

第三题:括号匹配

20. 有效的括号 - 力扣(LeetCode)

        这题可以通过栈来作答,将左括号入栈,右括号则需判断栈顶元素是否和它匹配。做这题要考虑多种选择:

(1).如果字符串第一个字符就是左边的括号,就不用往后看了(离它最近的没有字符可以和它匹配)。

(2).如果栈中出现空然后下一个字符串又是右边括号,这个也是后面不需要再看的,如果不为空,那就进行匹配。(所以需要在遇见右边括号后看栈是否为空)

(3).如果遇到左边括号,那就将其入栈。

(4).如果最后字符串都遍历完了,栈为空则匹配否则不匹配。

public boolean isValid(String s) {Stack<Character> stack = new Stack<>();if (s.charAt(0) != '{' && s.charAt(0) != '(' && s.charAt(0) != '[' ){return false;}stack.push(s.charAt(0));for (int i = 1; i < s.length(); i++){char c = s.charAt(i);if (c == ']' || c == '}' ||c == ')'){if (stack.empty()){return false;}if (stack.peek() == '(' && c == ')'){stack.pop();}else if (stack.peek() == '[' && c == ']'){stack.pop();}else if (stack.peek() == '{' && c == '}'){stack.pop();}else{return false;}}if (c == '(' || c == '{' || c == '['){stack.push(c);}}return stack.empty();
}

第四题:逆波兰表达式求值

 150. 逆波兰表达式求值 - 力扣(LeetCode)

        这题也是通过栈来实现的,解题思路就是如果字符串为数字那就入栈,如果遇到运算符号就进行运算,栈顶元素放在运算符号后面进行运算(也就是栈顶下一个元素【+-*/】栈顶元素) 。要注意的遇到字符串是数字的还需要转类型存入栈中(字符串转整型Integer.parseInt(字符串)) 。

public static int evalRPN(String[] tokens) {Stack<Integer> stack = new Stack();int a = 0;int b = 0;for (int i = 0; i < tokens.length; i++) {String s = tokens[i];switch (s) {case "+":b = stack.pop();a = stack.pop();stack.push(a + b);break;case "-":b = stack.pop();a = stack.pop();stack.push(a - b);break;case "*":b = stack.pop();a = stack.pop();stack.push(a * b);break;case "/":b = stack.pop();a = stack.pop();stack.push((int) a / b);break;default:stack.push(Integer.parseInt(s));}}return stack.pop();
}

第五题:出栈入栈次序匹配 

 栈的压入、弹出序列_牛客题霸_牛客网

        这题就是将第一题的选择题用代码实现,思路就是需要将元素依次入栈,在入栈后都要判断栈顶元素是否存在与出栈列表相同的元素,也有可能出栈多个元素,所以在while循环里,重点:如果栈为空但是还存在元素就需要跳出循环继续入栈

public static boolean IsPopOrder (int[] pushV, int[] popV) {Stack<Integer> stack = new Stack<>();int j = 0;for (int i = 0; i < pushV.length; i++) {stack.push(pushV[i]);while (j <= popV.length && stack.peek() == popV[j]) {j++;stack.pop();if (stack.empty()){break;}}}return stack.empty();
}

第六题:最小栈

 155. 最小栈 - 力扣(LeetCode)

        实现最小栈的方式是两个栈一块使用,一个存入栈的元素,一个存栈中最小的元素,两个栈相辅相成就可以每次拿出最小值的复杂度是O(1);

(1).先创建两个栈,再写一个构造方法;

(2).入栈:入栈分栈为空和不为空入栈,为空时:两个栈都入栈,不为空时又分两种最小值和非最小值(这个判断条件就是入栈元素比s2中的栈顶元素小或者等于时两个栈都要进);

(3).出栈:如果两个栈的栈顶元素相同那就两边都出栈,不相同那就出s1;

(4).获得栈顶元素:也就是获得s1中的栈顶元素;

(5).得到栈中最小值:获得s2的栈顶元素即可;

class MinStack {Stack<Integer> s1;Stack<Integer> s2;public MinStack() {s1 = new Stack<>();s2 = new Stack<>();}public void push(int val) {if (s1.empty()){s1.push(val);s2.push(val);return;}if (val <= s2.peek()){s2.push(val);}s1.push(val);}public void pop() {if (s1.peek().equals(s2.peek())){s1.pop();s2.pop();return;}else{s1.pop();}}public int top() {if (s1.empty())return -1;return s1.peek();}public int getMin() {return s2.peek();}
}

第七题:用队列实现栈

225. 用队列实现栈 - 力扣(LeetCode)

用两个队列实现栈,思路如下:

(1).实现入栈:把元素放在不是空的队列,如果两个都为空就放在q1(起始时默认q2是空)

(2). 实现出栈:将不为空的栈中的所有元素个-1全部出栈并依次放入为空的栈中,此时栈中剩下的一个元素就是一个栈出栈的元素

(3).获取栈顶元;素:还是同出栈原理相同就是将每次出栈的元素都存起来,最后一个就是栈顶元素

(4).判断是否为空:当两个队都为空时为空,其它情况都不为空;

class MyStack {Queue<Integer> q1;Queue<Integer> q2;public MyStack() {q1 = new LinkedList<>();q2  = new LinkedList<>();}public void push(int x) {if (!q1.isEmpty()){q1.offer(x);}else if (!q2.isEmpty()){q2.offer(x);}else{q1.offer(x);}}public int pop() {if (empty()){return -1;}if (!q1.isEmpty()){int size = q1.size();for (int i = 0; i < size - 1; i++){q2.offer(q1.poll());}return q1.poll();}else{int size = q2.size();for (int i = 0; i < size - 1; i++){q1.offer(q2.poll());}return q2.poll();}}public int top() {if (empty()){return -1;}int temp = 0;if (!q1.isEmpty()){int size = q1.size();for (int i = 0; i < size; i++){temp = q1.poll();q2.offer(temp);}return temp;}else{int size = q2.size();for (int i = 0; i < size; i++){temp = q2.poll();q1.offer(temp);}return temp;}}public boolean empty() {return q1.isEmpty()&&q2.isEmpty();}
}

第八题:用栈实现队列 

 232. 用栈实现队列 - 力扣(LeetCode)

用两个栈实现队列,思路是:

(1). 实现入队:直接将元素入队到s1中;

(2). 实现出队:判断s2的栈中是否为空,为空那就将s1中所有元素都进入到s2中,然后s2中出一个元素就是队列的出队操作,如果不为空直接从s2中出一个元素;

(3). 获取栈顶元素:和出队相像,只是返回栈顶元素;

(4).判断是否为空:当两个栈都为空时为空,其它情况都不为空;

class MyQueue {private Stack<Integer> s1;private Stack<Integer> s2;public MyQueue() {s1 = new Stack<>();s2 = new Stack<>();}public void push(int x) {s1.push(x);}public int pop() {if (s2.empty()){while(!s1.empty()){s2.push(s1.pop());}}return s2.pop();}public int peek() {if (s2.empty()){while(!s1.empty()){s2.push(s1.pop());}}return s2.peek();}public boolean empty() {return s1.empty()&&s2.empty();}
}

 还有很对与栈和队列相关的算法题,大家可以在LeetCode和牛客等网站上找找呀!

 

相关文章:

【Java数据结构】栈和队列相关算法

第一题&#xff1a;改变元素的序列 例1&#xff1a;若进栈序列为1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;进栈过程中可以出栈&#xff0c;则下列不可能一个出栈序列&#xff08;&#xff09;&#xff1b; A&#xff1a;1&#xff0c;4&#xff0c;3&#xff0c…...

LoRA微调系列笔记

系列文章目录 第一章&#xff1a;LoRA微调系列笔记 第二章&#xff1a;Llama系列关键知识总结 第三章&#xff1a;LLaVA模型讲解与总结 文章目录 系列文章目录LoRA&#xff1a;Low-Rank Adaptation of Large Language Models目的&#xff1a;依据&#xff1a;优势&#xff1a;…...

Linux(Ubuntu)下ESP-IDF下载与安装完整流程(3)

接前一篇文章:Linux(Ubuntu)下ESP-IDF下载与安装完整流程(2) 本文主要看参考官网说明,如下: 快速入门 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 Linux 和 macOS 平台工具链的标准设置 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 一、安装准备 1. Linux用...

【C++】22___STL常用算法

目录 一、常用遍历算法 二、常用查找算法 2.1 find 2.2 其它查找算法 三、常用排序算法 3.1 sort 3.2 其它排序算法 四、拷贝 & 替换 4.1 copy 4.2 其它算法 五、常用的算数生成算法 5.1 accumulate 5.2 fill 六、常用集合算法 6.1 set_intersection 6…...

linux 批量替换文件指定字符串

启发&#xff1a;数据库连接串的用户名需要从sa修改为sasa find . -type f -name mssql.json -exec sed -i s/IDsa;/IDsasa;/g {}...

List接口(源码阅读)

文章目录 1.List接口常用方法1.代码2.结果 2.ArrayList底层机制1.结论2.ArrayList底层源码1.代码2.debug添加第一个元素1.进入2.elementData数组存储ArrayList的数据3.初始化为空数组4.首先确保使用size1来计算最小容量5.如果elementData为空&#xff0c;最小容量就是106.modCo…...

股市学习 seekingalpha tradingview

EMA EMA&#xff08;Exponential Moving Average&#xff09;是一种技术分析中常用的指标&#xff0c;用于平滑股价或其他资产价格的波动&#xff0c;以帮助分析价格走势的趋势和方向。EMA与简单移动平均&#xff08;SMA&#xff09;类似&#xff0c;但对最新价格的权重更大&a…...

用再生龙备份和还原操作系统(三)

续上篇《用再生龙备份和还原操作系统&#xff08;二&#xff09;》 三&#xff0c;用再生龙将镜像文件还原到硬盘 将再生龙工具盘、待还原系统的硬盘&#xff08;与源盘一样大或更大&#xff09;、镜像文件所在磁盘&#xff08;如果是U盘&#xff0c;也可以后插&#xff09;安…...

FaceFusion 从0开始本地部署,RTX4060

FaceFusion 从0开始本地部署指南 一、环境准备 1. 基础工具安装 1.1 Git 安装 使用管理员权限打开 PowerShell执行安装命令&#xff1a; winget install -e --id Git.Git验证安装&#xff1a; git --version1.2 FFmpeg 安装 使用管理员权限打开 PowerShell执行安装命令&…...

Swift Combine 学习(六):自定义 Publisher 和 Subscriber

Swift Combine 学习&#xff08;一&#xff09;&#xff1a;Combine 初印象Swift Combine 学习&#xff08;二&#xff09;&#xff1a;发布者 PublisherSwift Combine 学习&#xff08;三&#xff09;&#xff1a;Subscription和 SubscriberSwift Combine 学习&#xff08;四&…...

服务器网卡绑定mode和交换机的对应关系

互联网各领域资料分享专区(不定期更新)&#xff1a; Sheet 模式类别 网卡绑定mode共有七种(0~6): bond0、bond1、bond2、bond3、bond4、bond5、bond6 mode详解 mode0 &#xff0c;即:(balance-rr) Round-robin policy(平衡轮循环策略&#xff0c;需要配置交换机静态聚合) mode…...

【动手学轨迹预测】2.4 考虑地图拓扑关系的表征方法

上一节我们介绍了VectorNet提出了矢量化场景表征方法, 大幅提高了预测网络编码性能. 但是VectorNet对地图数据的编码是基于无向无权图的, 并没有考虑到地图的拓扑关系. 显然在预测中, 地图的拓扑关系应该被考虑到. 于是在VectorNet的基础上, LaneGCN提出一种将地图车道作为节点…...

ChatGLM3模型搭建(踩坑记录版)

参考 魔搭社区 https://zhuanlan.zhihu.com/p/720148240 智谱AI通用大模型&#xff1a;本地部署ChatGLM3-6B开源大模型 - 编程库 说明 搭建方式多篇文章结合着看&#xff1b; 模型下载强烈推荐魔塔社区下载ZhipuAI/chatglm3-6b&#xff1b; 官方github指定清华的模型没有…...

基于 Python Django 的花卉商城系统的研究与实现

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

Spring Boot 3 文件下载、多文件下载以及大文件分片下载、文件流处理、批量操作 和 分片技术

在 Spring Boot 3 中&#xff0c;实现文件下载、多文件下载以及大文件分片下载需要结合以下功能&#xff1a;文件流处理、批量操作 和 分片技术。以下是详细实现方案&#xff1a; 1. 单文件下载 基础的单文件下载实现&#xff0c;可以参考以下代码&#xff1a; GetMapping(&…...

什么是事件循环(Event Loop)?请谈谈它在 JavaScript 中的作用?

事件循环&#xff08;Event Loop&#xff09;是什么&#xff1f; 事件循环&#xff08;Event Loop&#xff09;是JavaScript运行时环境&#xff08;如浏览器或Node.js&#xff09;中的一个核心机制&#xff0c;用于处理异步操作和事件。 它负责协调代码的执行、事件的处理、以…...

Lua : Coroutine(协程)

Lua 协程&#xff08;coroutines&#xff09;是一种强大的控制结构&#xff0c;允许函数在执行过程中暂停并在稍后恢复。与线程不同&#xff0c;协程是非抢占式的&#xff0c;这意味着它们不会被操作系统调度&#xff0c;而是由程序显式地切换。协程在 Lua 中非常有用&#xff…...

【2024华为OD-E卷-200分-跳格子2】(题目+思路+JavaC++Python解析)

题目描述 在一个二维平面上&#xff0c;有一个 n x m 的网格&#xff0c;每个格子有一个非负整数。你从左上角 (0, 0) 开始&#xff0c;每次只能向右或向下移动&#xff0c;目标是到达右下角 (n-1, m-1)。 在移动过程中&#xff0c;你需要记录经过的格子中&#xff0c;最大数…...

【仓颉语言基础】语言概念、环境配置与语法解析

华为仓颉语言是一门专为分布式系统设计的现代编程语言&#xff0c;以简洁的语法和强大的分布式能力为核心&#xff0c;提供高效的资源管理和任务调度方案。本篇文章将带您从概念入手&#xff0c;逐步掌握环境配置与语法基础&#xff0c;为分布式开发奠定坚实基础。 文章目录 一…...

LeetCode - 初级算法 数组(删除排序数组中的重复项)

免责声明:本文来源于个人知识与公开资料,仅用于学术交流。 删除排序数组中的重复项 这篇文章讨论如何从一个非严格递增的数组 nums 中删除重复的元素,使每个元素只出现一次,并返回新数组的长度。因为数组是排序的,只要是相同的肯定是挨着的,所以我们需要遍历所有数组,然…...

SpringMVC进阶(自定义拦截器以及异常处理)

文章目录 1.自定义拦截器 1.基本介绍 1.说明2.自定义拦截器的三个方法3.流程图 2.快速入门 1.Myinterceptor01.java2.FurnHandler.java3.springDispatcherServlet-servlet.xml配置拦截器4.单元测试 3.拦截特定路径 1.拦截指定路径2.通配符配置路径 4.细节说明5.多个拦截器 1.执…...

2 秒杀系统架构

第一步 思考面临的问题和业务场景 秒杀系统面临的问题: 短时间内并发非常高&#xff0c;如果按照秒杀的并发做相应的承载会造成大量资源的浪费。第二解决超卖的问题。 第二步 思考目前的处境和解决方案 因为秒杀系统属于短时间内的高并发问题&#xff0c;我们不可能使用那么…...

C++如何遍历数组vector

在C中&#xff0c;vector是一个可变数组。那么怎么遍历它呢&#xff1f;我们以for循环为例&#xff08;while循环&#xff0c;大家自己脑补&#xff09;。 方法一&#xff1a; 基于范围的for循环&#xff0c;这是C11新引入的。 std::vector<int> v {1, 2, 3, 4, 5, 6…...

ubuntu非root用户操作root权限问题-virbox挂在共享文件夹

首先讲一下&#xff0c;virtuallbox 挂在文件夹&#xff0c;操作的时候总是需要root权限&#xff0c;比较费劲。 这一操作其实也正对着我们在Ubuntu上的操作。 前段时间我想在ubuntu正常用户下去操作i2c&#xff0c;也出现了类似的问题。 后来把正常的操作加到组里面也解决了类…...

大模型推理:vllm多机多卡分布式本地部署

文章目录 1、vLLM分布式部署 docker镜像构建通信环境配置 2、其他大模型部署工具3、问题记录参考文献 单台机器GPU资源不足以执行推理任务时&#xff0c;一个方法是模型蒸馏量化&#xff0c;结果就是会牺牲些效果。另一种方式是采用多台机器多个GPU进行推理&#xff0c;资源不…...

WFP Listbox绑定数据后,数据变化的刷新

Listbox绑定数据通过ItemsSource来的&#xff0c;如果绑定的是普通的List<数据>&#xff0c;不会自己刷新。 使用ObservableCollection集合 解决问题的方法: 将数组替换为 ObservableCollection ObservableCollection 是专为绑定设计的集合类型&#xff0c;可以通知 W…...

AI + 爬虫:智能化数据采集的未来

随着人工智能&#xff08;AI&#xff09;技术的不断进步&#xff0c;传统的网络爬虫正经历一场前所未有的变革。从规则驱动到智能化演变&#xff0c;AI 的引入不仅提高了爬虫的效率和适应性&#xff0c;更为大规模数据采集提供了全新思路。本文将深入探讨 AI 与爬虫的结合&…...

人工智能知识分享第五天-正则化.损失函数案例

正则化 欠拟合与过拟合 过拟合&#xff1a;一个假设 在训练数据上能够获得比其他假设更好的拟合&#xff0c; 但是在测试数据集上却不能很好地拟合数据 (体现在准确率下降)&#xff0c;此时认为这个假设出现了过拟合的现象。(模型过于复杂) 欠拟合&#xff1a;一个假设 在训…...

WebRTC的线程事件处理

1. 不同平台下处理事件的API&#xff1a; Linux系统下&#xff0c;处理事件的API是epoll或者select&#xff1b;Windows系统下&#xff0c;处理事件的API是WSAEventSelect&#xff0c;完全端口&#xff1b;Mac系统下&#xff0c;kqueue 2. WebRTC下的事件处理类&#xff1a; …...

C++软件设计模式之迭代器模式

迭代器模式是一种行为设计模式&#xff0c;它允许你顺序访问一个聚合对象的元素&#xff0c;而不暴露其底层表示。在C软件设计中&#xff0c;迭代器模式的主要目的是将数据的遍历行为与数据结构本身分离&#xff0c;使得数据结构的修改不会影响到遍历代码。 目的和意图 解耦遍…...

git reset --hard(重置到当前提交,所有未提交的更改都会被永久丢弃)

git reset --hard 是一个强大的命令&#xff0c;它会将你的工作目录、暂存区和当前分支的 HEAD 指针重置到指定的提交状态&#xff0c;所有未提交的更改都会被永久丢弃。因此&#xff0c;使用这个命令时需要非常小心。 基本用法 重置到当前提交&#xff08;丢弃所有未提交的更…...

三分钟在你的react项目中引入tailwindcss

前言&#xff1a;在vite搭建的react项目中引入并使用tailwindcss 一、初始化react项目 1、创建项目 在文件夹下右键打开终端并输入命令使用vite创建项目 pnpm create vite react-tailwind选择reactjavascript&#xff0c;并输入命令安装依赖并启动 2、安装tailwind pnpm …...

Android Studio学习笔记

01-课程前面的话 02-Android 发展历程 03-Android 开发机器配置要求 04-Android Studio与SDK下载安装 05-创建工程与创建模拟器...

19712 数字接龙

/*我觉得重要的理解点&#xff1a;1.四维数组白表示一个点从另一个点沿对角线的方式进行移动&#xff0c;如果这个元素的值为真则表示这样的移动存在。 2.按照0->k-1的顺序移动。这个要求的实现方法也值得学习 3.count和index的含义&#xff1a; index表示索引&#xff0c;表…...

【图像去噪】论文复现:大道至简!ZS-N2N的Pytorch源码复现,跑通源码,获得指标计算结果,补充保存去噪结果图像代码,代码实现与论文理论对应!

请先看【专栏介绍文章】:【图像去噪(Image Denoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中) 完整代码和训练好的模型权重文件下载链接见本文底…...

Linux-mac地址

mac地址 由6位16进制数组成。最高字节的最低位&#xff0c;0表示单播地址&#xff0c;1表示多播地址。最高字节的第二位&#xff0c;0表示全局地址&#xff0c;1表示本地地址。 单播地址&#xff1a;单播MAC地址用于一对一的通信模式&#xff0c;即从单一的源端发送到单一的目…...

旷视科技Java面试题及参考答案

讲一下进程间的通讯方式(如管道、消息队列、共享内存、Socket 等),各有什么特点? 管道(Pipe) 管道是最早出现的进程间通信方式之一,主要用于具有亲缘关系(父子进程)的进程之间通信。 特点: 半双工通信,数据只能单向流动。例如,在一个简单的父子进程通信场景中,父进…...

【无线传感网】WSN数据管理技术

文章目录 WSN数据管理的基本概念以数据为中心的WSN数据库与分布式数据库相比具有的特殊性WSN数据管理技术的研究热点 WSN数据管理的关键技术无线传感器网络数据存储结构网外集中式存储方案网内分层存储方案网内本地存储方案以数据为中心的网内存储方案 数据查询处理技术查询类型…...

硬件基础知识笔记(2)——二级管、三极管、MOS管

Part 2 二级管、三极管、MOS管 1、二级管1.1肖特基二极管和硅二极管选型比较1.2到底是什么决定了二极管的最高工作频率&#xff1f;1.3二极管结电容和反向恢复时间都是怎么来的 1、二级管 1.1肖特基二极管和硅二极管选型比较 肖特基二极管的优势主要在速度和压降&#xff0c;对…...

记录uniapp组件swiper自适应高度

在uniapp组件swiper不能自适应高度 思路: 根据传的图片,进行图片分析宽高, 根据屏幕尺寸,进行换算对应的宽高比。 最后获得图片尺寸,进行赋值。 <swiper class="swiper" :style="{ height: `${swiperheight}` + px }" @change="onSwiperC…...

Presto-简单了解-230403

presto是什么了解一下&#xff1a; 秒级查询引擎&#xff08;不做存储&#xff09;&#xff0c;GB-PB级不依赖于yarn&#xff0c;有自己的资源管理和执行计划支持多种数据源&#xff1a;hive、redis、kafka presto架构 presto优缺点 presto优点 内存到内存的传输&#xff0…...

Windows Knowledge

1 GRUB简介 1.1 MBR和PBR MBR分为GRUB.MBR和DOS.MBR。 由于硬盘上扇区从偏移0到偏移62属于同一个磁道0&#xff0c;虽然DOS.MBR仅占用一个扇区&#xff0c;但是需要将DOS.MBR后面的偏移1到偏移62保留&#xff0c;所以磁盘上第一个分区的第一个扇区是从偏移63开始的。fbinst软件…...

【Rust自学】9.1. 不可恢复的错误以及panic!

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 9.1.1. Rust错误处理概述 Rust拥有极高的可靠性&#xff0c;这也延伸到了错误处理的领域。比如说在大部分情况下&#xff0c;Rust会迫使你…...

UE5 Debug的一些心得

1、BUG粗略可分为两类&#xff1a; 一种是显性的&#xff0c;编译直接就通不过&#xff0c;必须马上解决。 第二种是隐性的&#xff0c;新功能完成后&#xff0c;编译成功顺利运行&#xff0c;洋洋自得&#xff0c;而问题隐藏在幕后&#xff0c;测试之后才逐渐发现有问题&…...

Docker Compose 构建 EMQX 集群 实现mqqt 和websocket

EMQX 集群化管理mqqt真香 目录 #目录 /usr/emqx 容器构建 vim docker-compose.yml version: 3services:emqx1:image: emqx:5.8.3container_name: emqx1environment:- "EMQX_NODE_NAMEemqxnode1.emqx.io"- "EMQX_CLUSTER__DISCOVERY_STRATEGYstatic"- …...

通过Xshell远程连接wsl2

目录 一、WSL网络原理 二、 下载XShell 三、Ubuntu里配置ssh 1.查看是否已经安装SSH 2.安装SSH 3.修改SSH配置 4.重启ssh 5.查看ip 四、在Xshell中链接电脑 五、设置端口转发 1.设置主机端口映射到wsl2的端口 六、防火墙设置开放8989端口 方式一(推荐): 方式二:…...

产品原型设计

&#x1f923;&#x1f923;目录&#x1f923;&#x1f923; 一、Axure原型设计&#xff08;Axure RP 9 &#xff09;1.1 软件下载安装1.2 产品原型展示1.3 产品原型下载1.4 视频课程推荐 二、磨刀原型设计2.1 软件下载安装2.2 产品原型展示2.3 产品原型下载2.4 视频课程推荐 什…...

【二】arcgis JavaScript api 实现加载不同坐标系的底图和三维服务

提示&#xff1a;如果是天地图底图参考这篇文章 【一】arcgis JavaScript api 实现加载不同坐标系的底图和三维服务_arcgis js api 调用三维地图服务-CSDN博客 需求&#xff1a; 前端开发实现底图&#xff08;wkid&#xff1a;3857&#xff0c;web墨卡托&#xff09;&#x…...

使用JMeter对Linux生产服务器进行压力测试

安装 JMeter wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.4.1.tgz tar -xzf apache-jmeter-5.4.1.tgz cd apache-jmeter-5.4.1创建 JMeter 脚本 设置中文 选择Options—>Choose Language—>选择其他语言&#xff08;例如&#xff1a;Chinese&am…...

mapper文件的解释

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"com.ruoyi.system.mapper.Jianai…...