【算法题解答·六】栈队列堆
【算法题解答·六】栈队列堆
接上文【算法方法总结·六】栈队列堆的一些技巧和注意事项
栈队列堆相关题目如下:
232.用栈实现队列 简单
- 准备两个栈,一个负责入队的栈
A
,一个负责出队的栈B
- 出队和返回队列开头元素,都要先进行以下操作:如果
B
为空,则A
中的元素全部放到B
中
class MyQueue {Stack<Integer> stackIn;Stack<Integer> stackOut;public MyQueue() { // 初始化栈stackIn = new Stack<>(); // 负责进队stackOut = new Stack<>(); // 负责出队}public void push(int x) { // 入队stackIn.push(x);}public int pop() { // 出队并返回元素dumpstackIn();return stackOut.pop();}public int peek() { // 返回队列开头的元素dumpstackIn();return stackOut.peek();}public boolean empty() {return stackIn.isEmpty() && stackOut.isEmpty();}// 如果stackOut为空,则stackIn中的元素全部放到stackOut中public void dumpstackIn() {if (!stackOut.isEmpty())return;while (!stackIn.isEmpty()) {stackOut.push(stackIn.pop());}}
}
150. 逆波兰表达式求值
- 逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面。
- 平常使用的算式则是一种中缀表达式,如
(1+2)*(3+4)
。 - 其逆波兰表达式为
((1 2+)(3 4+)*)
- 适合用栈操作运算:遇到数字则入栈;遇到运算符则取出栈顶两个数字进行计算,并将结果压入栈中
class Solution {public int evalRPN(String[] tokens) {Deque<Integer> deque = new LinkedList<>();for (String s : tokens) {if (s.equals("+")) { // 符号,取出两数进行运算,再压入栈中deque.push(deque.pop() + deque.pop());} else if (s.equals("-")) {deque.push(-deque.pop() + deque.pop());} else if (s.equals("*")) {deque.push(deque.pop() * deque.pop());} else if (s.equals("/")) {int t1 = deque.pop();int t2 = deque.pop();deque.push(t2 / t1);} else { // 数字入栈deque.push(Integer.valueOf(s));}}return deque.pop();}
}
239. 滑动窗口最大值 困难
为什么队列用来存下标,是因为需要判断队首元素是否在窗口内
- 使用 由大到小的单调双端队列
- 把比当前元素小的弹出队尾;当前值加入队尾;判断队首元素是否有效;当窗口大于k时,开始记录最大值
class Solution {public int[] maxSlidingWindow(int[] nums, int k) {Deque<Integer> d = new LinkedList<>();// 用双端队列存储下标(更方便)int n = nums.length;int[] res = new int[n - k + 1];for (int i = 0; i < n; i++) {// 维护单调性,保证从大到小,前面数小依次弹出while (!d.isEmpty() && nums[i] >= nums[d.peekLast()]) {d.pollLast();}// 添加当前值对应下标d.offerLast(i);// 判断队首元素是否有效,[i - k + 1, i]if (d.peek() <= i - k) { // 不在范围内d.poll();}// 当窗口长度为k时,保存记录if (i + 1 >= k) {res[i - k + 1] = nums[d.peek()];}}return res;}
}
347.前 K 个高频元素
-
- 要统计元素出现频率
HashMap
- 要统计元素出现频率
-
- 对频率排序
PriorityQueue 小根堆
- 对频率排序
-
- 找出前K个高频元素
class Solution {public int[] topKFrequent(int[] nums, int k) {// 小根堆PriorityQueue<int[]> p = new PriorityQueue<>((o1, o2) -> o1[1] - o2[1]);int[] res = new int[k]; // 保存结果Map<Integer, Integer> map = new HashMap<>();for (int n : nums) {map.put(n, map.getOrDefault(n, 0) + 1);}for (Map.Entry<Integer, Integer> x : map.entrySet()) {int[] tmp = new int[2];tmp[0] = x.getKey(); // 元素tmp[1] = x.getValue(); // 出现次数p.offer(tmp); // (元素,出现次数)if (p.size() > k) { // 弹出到只有k个元素,剩下的为最小的k个p.poll();}}for (int i = 0; i < k; i++) {res[i] = p.poll()[0];}return res;}
}
20.有效的括号 简单
- 遇到左括号
( [ {
,则让右括号) ] }
入栈 - 遇到右括号
) ] }
,则和 栈顶元素 比较,相同则出栈,最后栈空 说明 有效
class Solution {public boolean isValid(String s) {Deque<Character> qu = new LinkedList<>(); // 栈char[] ss = s.toCharArray();for (char ch : ss) {if (ch == '(') qu.push(')');else if (ch == '[') qu.push(']');else if (ch == '{') qu.push('}');// 栈空 或 不等于 else if (qu.isEmpty() || qu.peek() != ch) {return false;} else {qu.pop();}}return qu.isEmpty();}
}
155.最小栈
- 用一个 最小栈 来存储最小元素
class MinStack {public Stack<Integer> stack;public Stack<Integer> min_stack;public MinStack() {stack = new Stack<>();min_stack = new Stack<>();}public void push(int val) {stack.push(val);if(min_stack.isEmpty() || val<=min_stack.peek()){min_stack.push(val);}}public void pop() {int x = stack.pop();if(x==min_stack.peek()){min_stack.pop();}}public int top() {return stack.peek();}public int getMin() {return min_stack.peek();}
}
394.字符串解码
- 情况一:遍历到
[
时,说明还不需要计算,乘积、字符串res
均入栈 - 情况二:遍历到
]
时,说明需要计算,乘积出栈,当前字符*
乘积,拼接上字符串出栈 - 情况三:遍历到
0-9
时,计算乘积为多少 - 情况四:遍历到
字母
时,加入res
字符串
class Solution {public String decodeString(String s) {StringBuilder res = new StringBuilder();int multi = 0;Deque<Integer> st_multi = new LinkedList<>(); //乘积栈Deque<String> st_res = new LinkedList<>(); //字符栈char[] ss = s.toCharArray();for (char ch : ss) {if (ch == '[') { //情况一:遍历到 [ 时,加入栈st_multi.push(multi); // 乘积入栈st_res.push(res.toString()); // 字符入栈multi = 0; // 清0res = new StringBuilder(); // 清0} else if (ch == ']') { //情况二:遍历到 ] 时,出栈StringBuilder tmp = new StringBuilder();int cur_multi = st_multi.pop(); //乘积for (int i = 0; i < cur_multi; i++) {tmp.append(res);}res = new StringBuilder(st_res.pop() + tmp);} else if (ch >= '0' && ch <= '9') { //情况三:遍历到0-9时,计算multi = multi * 10 + ch - '0';} else { //情况四:遍历到字母时,resres.append(ch);}}return res.toString();}
}
739.每日温度
- 遍历入栈,下一个要入栈的元素更大,则出栈
- 相当于是一个递减栈,即栈里只有递减元素
class Solution {public int[] dailyTemperatures(int[] temperatures) {Deque<Integer> qu = new LinkedList<>(); // 栈int len = temperatures.length;int[] ans = new int[len];for (int i = 0; i < len; i++) {// 遍历入栈,下一个要入栈的元素更大,则出栈// 栈非空,且栈顶温度<当前温度 while (!qu.isEmpty() && temperatures[qu.peek()] < temperatures[i]) {int idx = qu.pop();ans[idx] = i - idx;}qu.push(i);}return ans;}
}
84.柱状图中最大的矩形 困难
class Solution {public int largestRectangleArea(int[] heights) {int len = heights.length;Deque<Integer> st = new LinkedList<>();int res = 0;// 两端各加一哨兵int[] newHeight = new int[len + 2];// 数组扩容newHeight[0] = 0;newHeight[len + 1] = 0;for (int i = 0; i < len; i++) {newHeight[i + 1] = heights[i];}heights = newHeight;len = heights.length;st.push(0);for (int i = 1; i < len; i++) {// 有更大的,入栈if (heights[i] >= heights[st.peek()]) {st.push(i);} else {// 下一个准备入栈的元素 < 栈顶,开始计算并出栈while (heights[i] < heights[st.peek()]) {int mid = st.pop();int left = st.peek();int right = i;int w = right - left - 1;int h = heights[mid];res = Math.max(res, h * w);}st.push(i);}}return res;}
}
215.数组中的第k个最大元素
-
方法一:内置排序
Arrays.sort()
时间复杂度O(n log n)
-
方法二:快速排序 + 选择
class Solution {public int findKthLargest(int[] nums, int k) {List<Integer> numList = new ArrayList<>(); // 数组->链表for (int num : nums) {numList.add(num);}return quickSelect(numList, k); // 快速排序+选择}public int quickSelect(List<Integer> nums, int k) {// 随机选择哨兵Random rand = new Random();int pivot = nums.get(rand.nextInt(nums.size()));// 划分List<Integer> big = new ArrayList<>();List<Integer> equal = new ArrayList<>();List<Integer> small = new ArrayList<>();for (int num : nums) {if (num > pivot)big.add(num);else if (num < pivot)small.add(num);elseequal.add(num);}// 第k大元素在big中,递归划分if (k <= big.size()) {return quickSelect(big, k);}// 第k大元素在small中,递归划分if (nums.size() - small.size() < k) {return quickSelect(small, k - nums.size() + small.size());}// 第k大元素在equal中,返回pivotreturn pivot;}
}
295.数据流的中位数 困难
A
小根堆 用来保存 较大的一半B
大根堆 用来保存 较小的一半
class MedianFinder {Queue<Integer> A, B;public MedianFinder() {A = new PriorityQueue<>(); // 小根堆B = new PriorityQueue<>((x, y) -> (y - x)); // 大根堆}public void addNum(int num) {if (A.size() != B.size()) { // 再添加后为偶数A.add(num);B.add(A.poll());} else { // 再添加后为奇数B.add(num);A.add(B.poll());}}public double findMedian() {if (A.size() != B.size()) {return A.peek();} else {return (A.peek() + B.peek()) / 2.0;}}
}
算法题解答系列
【算法题解答·一】二分法
【算法题解答·二】双指针法
【算法题解答·三】滑动窗口
【算法题解答·四】字符串操作
【算法题解答·五】链表操作
相关文章:
【算法题解答·六】栈队列堆
【算法题解答六】栈队列堆 接上文【算法方法总结六】栈队列堆的一些技巧和注意事项 栈队列堆相关题目如下: 232.用栈实现队列 简单 准备两个栈,一个负责入队的栈A,一个负责出队的栈B出队和返回队列开头元素,都要先进行以下操作…...
计算机视觉算法实战——手势识别(主页有源码)
✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ 1. 领域简介:手势识别的价值与挑战 手势识别是连接人类自然行为与数字世界的核心交互技术,在智能设备控制、…...
JobScheduler省电机制
1.前言 JobScheduler(任务调度器)是 Android 提供的一种任务调度机制,可以替代传统的 WakeLock 和 Alarm 来执行后台任务。那么,它们之间的区别是什么?JobScheduler 又有哪些特别之处呢? 1.1 WakeLock 和 …...
设计模式学习笔记——命令模式
2025年3月13日,周四下午 相同的保存逻辑在各个组件中重复出现。 且需要修改保存逻辑时,各个组件的保存逻辑都需要进行相应修改。 使用了命令模式把保存逻辑从三个组件中独立出来后,减少了代码冗余。 可以通过“保存命令”来使用保存逻辑&am…...
[TPCTF 2025] crypto 复现两题
周末很忙。比赛都没怎么看。晚上把密码复现两个。 randomized random 这题在小鸡块博客里见过,稍有区别。 # FROM python:3 import random with open("flag.txt","rb") as f:flagf.read() for i in range(2**64):print(random.getrandbits(3…...
电子元器件选型与实战应用—16 怎么选一个合适的MCU芯片?
文章目录 1. 选型要素1.1 价格1.2 技术支持1.3 厂家优势1.4 功耗1.5 特殊功能1.6 统计外设1.7 确定外设占用的内存和flash大小1.8 确定外设通信接口1.9 确定外设通信接口的电平1.10 确定外设的GPIO数量1.11 确定外设的供电和功耗1.12 确定外设GPIO的种类1.13 确定ADC的数量1.14…...
第6关:牛牛鱼缸-附加题
任务描述 本关任务:问题描述:牛牛有一个鱼缸,鱼缸里面已经有n条鱼,每条鱼的大小为fishSizei,牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸里存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼…...
go中间件学习
本博文源于笔者正在学习go中间件,罗列了较为常用的中间件,例如日志记录、认证授权、跨域资源共享、请求体解析、静态文件处理、错误处理、性能分析、速率限制、session 1、日志记录中间件 可以追加打印用,例如,将请求进行打印 …...
若依RuoYi-Cloud-Plus微服务版(完整版)前后端部署
一.目标 在浏览器上成功登录进入 二.源码下载 后端源码:前往Gitee下载页面(https://gitee.com/dromara/RuoYi-Cloud-Plus)下载解压到工作目录。 前端源码: 前往Gitee下载页面(https://gitee.com/JavaLionLi/plus-ui)下载解压到工作目录。 文档地址&a…...
航空电动力系统适航标准要点手册
航空电动力系统适航标准要点手册 1.标准制定背景与必要性1.1 为什么需要制定和遵循标准?1.2 标准制定依据与发布机构 2.关键核心标准概述2.1 电动航空与电推进系统2.2 混合动力系统2.3 硬件与通用要求 3.标准详细解读与应用场景3.1 DO-160G:环境适应性测…...
深入理解JavaScript构造函数与原型链:从原理到最佳实践
一、开篇:为什么需要理解原型链? 在JavaScript开发中,90%以上的"诡异"bug都与原型链机制相关。理解构造函数与原型链的运行原理,不仅能帮助我们写出更优雅的代码,还能在框架源码阅读、性能优化等场景中游刃…...
java每日精进 3.12 【WebSocket进阶】
基于 SpringWebSocket 进行二次封装,实现了更加简单的使用方式。例如说,WebSocket 的认证、Session 的管理、WebSocket 集群的消息广播等等。 1. 用户认证与登录用户信息传递 1.1 Token 过滤器 (TokenAuthenticationFilter) ① 在 WebSocket 连接建立…...
国家网络安全事件应急预案
目 录 1 总则 1.1 编制目的 1.2 编制依据 1.3 适用范围 1.4 事件分级 1.5 工作原则 2 组织机构与职责 2.1 领导机构与职责 2.2 办事机构与职责 2.3 各部门职责 2.4 各省(区、市)职责 3 监测与预警 3.1 预警分级 3.2 预警监测 3.3 预警研判…...
Markdown:Mermaid 画图
目录 安装基本语法流程图时序图甘特图总结 Mermaid 是一款用于生成流程图、时序图、甘特图等图表的 JavaScript 库。它可以将简单的文本描述转化为美观的图表,方便开发者进行可视化展示。 安装 Mermaid 可以直接在浏览器中使用,也可以在 Node.js 环境中…...
【视频】ffmpeg、Nginx搭建RTMP、HLS服务器
1、源码安装Nginx 1)源码下载 因为要使用Nginx的模块nginx-rtmp-module,所以要下载 nginx 和 nginx-rtmp-module 的源码。 下载地址: http://nginx.org/en/download.html https://github.com/arut/nginx-rtmp-module/tags2)解压、配置 在同一个目录中解压 nginx 和 nginx…...
时间有限,如何精确设计测试用例?5种关键方法
精确设计测试用例能够迅速识别并修复主要缺陷,确保产品质量,降低后期维护成本,并通过专注于核心功能来提升用户体验,为项目的成功奠定坚实基础。若未能精确设计测试用例,可能会导致关键功能测试不充分,使得…...
【算法】图论
⭐️个人主页:小羊 ⭐️所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 持续更新中...1、DFS2、BFSN 叉树的层序遍历二叉树的锯齿形层序遍历二叉树最大宽度 3、多源BFS腐烂的苹果 4、拓扑排序 持续更新中…...
ADQ32 5G采集卡
ADQ32是一款高端12位双通道数据采集板,针对高通量科学应用进行了优化。ADQ32具有以下特性: 一个和两个模拟输入通道包括每通道5和2.5 GSPS7GB/s的持续数据传输速率至GPU7GB/秒的持续数据传输速率两个外部触发器通用输入/输出(GPIO)开放式FPG…...
机器人领域专业名词汇总
1. 电机与驱动 电机类型 DC Motor(直流电机):通过直流电源驱动的电机。Stepper Motor(步进电机):通过脉冲信号控制旋转角度的电机。Servo Motor(伺服电机):带有反馈控制的…...
拆解 “ES 已死“ 伪命题:Agentic RAG 时代搜索引擎的终极形态
作者:来自 Elastic 李捷 xxx:“ES已死,#%#……” 我:??? 最近,某厂商发了一堆公关文章,翻来覆去地炒作 “ES 已死”,“放弃 ES”。这哪是什么正经的技术文章&…...
eNSP中路由器的CON/AUX接口、GE Combo接口、Mini USB接口、USB接口、WAN侧uplink接口、FE接口、GE接口介绍
路由器常见接口的详细介绍及其应用示例: 1. CON/AUX 接口 全称:Console/Auxiliary(控制台/辅助接口)作用: CON(Console):通过命令行界面(CLI)直接配置路由器…...
平面的四种方程及一些应用
平面的四种方程及一些应用 点法式方程一般式方程三点式方程截距式方程一些应用已知平面方程,找出平面上不共线的三个点 点法式方程 平面经过点 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0)且法向量为 ( a , b , c ) (a,b,c) (a,b,c),则平面的点…...
记录一个SQL自动执行的html页面
在实际工作场景中,需要运用到大量SQL语句更新业务逻辑,对程序员本身,写好的sql语句执行没有多大问题(图1),但是对于普通用户来说还是有操作难度的。因此我们需要构建一个HTML页面(图2࿰…...
SpringBoot——Maven篇
Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的工具。它具有许多特性,其中一些重要的特性包括: 1. 自动配置:Spring Boot 提供了自动配置的机制,可以根据应用程序的依赖和环境自动配置应用程序的各种组件ÿ…...
数据批处理(队列方式)
数据批处理(队列方式) public class DataProcessor {private static final int THREAD_COUNT 4;private static final int QUEUE_SIZE 10;private LinkedBlockingQueue<Data> queue new LinkedBlockingQueue<>(QUEUE_SIZE);public DataP…...
从零开始搭建搜索推荐系统(五十四)多路召回之万剑归宗
聊的不止技术。跟着小帅写代码,还原和技术大牛一对一真实对话,剖析真实项目筑成的一砖一瓦,了解最新最及时的资讯信息,还可以学到日常撩妹小技巧哦,让我们开始探索主人公小帅的职场生涯吧! (PS…...
c++介绍函数指针 十
指针代表内存中地址标识符,变量,数组都是存储内存中的数据。所以可以获得它们的地址,用指针来表示这块内存。 如图输出内存中的地址。 对于一个函数来说,也是内存中存储这段数据,所以我们也可以获取函数的地址。 函数…...
redis数据库
一、redis数据库介绍 NoSQL Not Only SQL 非关系型数据库 1、关系型数据库与非关系型数据库的区别 非关系型数据库性能高、速度快、支持高并发连接 1、非关系型数据库基于内存存储数据 2、摒弃了关系型数据的约束限制 3、采用o1算法进行设计开发 2、作用 关系型数…...
关于 NoC 中数据安全传输的设计与实现的详细介绍
片上网络(Network-on-Chip,NoC)作为一种新兴的片上通信架构,解决了传统总线架构在大规模集成电路设计中面临的诸多问题。然而,随着芯片系统的复杂性和应用场景的多样化,NoC 中数据安全传输变得至关重要。以…...
OpenGL(4)着色器
文章目录 一、着色器1、什么是着色器?2、着色器类型2.1、顶点着色器(Vertex Shader)2.2、片段着色器(Fragment Shader) 3、着色器属性3.1、layout 属性3.2、in 属性3.3、out 属性3.4、总结 4、示例 前言: 在…...
PHP批量去除Bom头的方法
检查的代码: <?php$dir __DIR__; $files new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));foreach ($files as $file) {if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) php) {$content file_get_contents(…...
51单片机的keil c51软件安装教程
Keil(C51)介绍、下载、安装与注册_keil c51-CSDN博客 参考 安装 不一定是这个大小,也可以下载别的版本KEID C51 注册 加入芯片型号 …...
JavaScript基本知识
文章目录 一、JavaScript基础1.变量(重点)1-1 定义变量及赋值1-2 变量的命名规则和命名规范判断数据类型: 2.数据类型转换2-1 其他数据类型转成数值2-2 其他数据类型转成字符串2-3 其他数据类型转成布尔 3.函数3-1函数定义阶段3-2函数调用阶段…...
导数,积分及常用公式
导数定义: 求导是数学计算中的一个计算方法,它的定义就是,当自变量的增量趋于零时,因变量的增量与自变量的增量之商的极限。在一个函数存在导数时,称这个函数可导或者可微分。可导的函数一定连续。不连续的函数一定…...
鸿蒙应用开发—ZDbUtil高效使用数据库
文章目录 介绍下载安装基本使用注解TableIdColumnOneToOne 使用方法定义实体类初始化数据库并根据被Table注解的类创建表创建表查数据插入数据删除数据清空数据 参考 介绍 ZDbUtil是一款基于SQLite的鸿蒙数据库框架,通过注解标注实体类与属性,让数据更能…...
强化学习(赵世钰版)-学习笔记(7.时序差分学习)
本章是课程算法与方法中的第四章,介绍的时序差分学习算法是基于随机近似方法设计的强化学习方法,也是model-free的方法。 时序差分算法是一种近似估计策略状态值的算法,具体的形式如下: 本质上是在当前t时刻,被访问到的…...
正则表达式入门及常用的正则表达式
正则表达式(Regular Expression,简称 Regex)是一种强大的文本处理工具,用于匹配、查找和替换字符串中的特定模式。以下是入门指南和常用正则表达式示例: 一、正则表达式入门 1. 基本语法 符号说明示例.匹配任意单个字…...
大白话如何在 Vue 项目中进行路由懒加载?
大白话如何在 Vue 项目中进行路由懒加载? 在 Vue 项目里,路由懒加载是种很实用的技术,它能让你在需要的时候再去加载对应的路由组件,而不是在项目启动时就把所有组件都加载进来,这样能加快项目的启动速度。下面就详细…...
手动实现一个RTTI系统
在 C 中,RTTI(Runtime Type Information,运行时类型信息)是一组允许程序在运行时获取对象类型信息的机制 。虽然C通过虚接口的方式提供了良好的抽象,但是对于一个复杂的系统,过于依赖抽象而忽略业务的复杂性…...
智能化水利监管:无人机视频在违章行为识别中的应用
随着我国经济社会的快速发展,水利工程建设规模不断扩大,但随之而来的违章建设行为也日益增多。传统的人工巡查方式效率低下,难以满足当前监管需求。无人机技术以其灵活性和高效性,为水利工程建设监管提供了新的解决方案。本文将探…...
力扣练习之确定两个字符串是否接近
目录 题目: 题解: 详细题解 题目: 如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 : 操作 1:交换任意两个 现有 字符。 例如,abcde -> aecdb 操作 2࿱…...
Word 小黑第21套
对应大猫22 设置表格为页面的80%:表布局 -属性 -表格 指定宽度80% 度量单位改成百分比 段落组 -中文版式 在表格上下方留一行空段(如果表格太大改一下样式)插入横线 边框线 (右击横线 -图片 修改样式) 段落 -取消对于…...
mingw32编译ffmpeg
ffmpeg https://gitee.com/mirrors/ffmpeg.git 使用msys2的mingw32 pacman -S mingw-w64-x86_64-toolchain compile ./confiure --enable-static --disable-shared --enable-gpl --target-oswin32 mingw32-make -j4 提示编译错误,msys2里面的路径是/d/tools/msys2…...
设计模式C++
针对一些经典的常见的场景, 给定了一些对应的解决方案,这个就叫设计模式。 设计模式的作用:使代码的可重用性高,可读性强,灵活性好,可维护性强。 设计原则: 单一职责原则:一个类只做一方面的…...
使用 Excel 实现绩效看板的自动化
引言 在日常工作中,团队的绩效监控和管理是确保项目顺利进行的重要环节。然而,面临着以下问题: 数据分散:系统中的数据难以汇总,缺乏一个宏观的团队执行情况视图。看板缺失:系统本身可能无法提供合适…...
ngx_openssl_conf_t
ngx_openssl_conf_t 定义在 src\event\ngx_event_openssl.c typedef struct {ngx_uint_t engine; /* unsigned engine:1; */ } ngx_openssl_conf_t; 1. 这个结构体的目的是存储与 OpenSSL 引擎相关的配置信息。 2. engine 字段用于标识是否启用 OpenSSL 的硬件加速引擎…...
深度学习环境配置指令大全
文章目录 环境配置官网/博客合集清华镜像站anaconda官网pytorch官网pytorch历史库官网pytorch与cuda对应版本下载博客torch与torchvision与python对应关系python与pytorch对应关系 环境相关创建环境激活环境退出环境删除环境检查环境冲突 安装相关安装requirementsconda安装con…...
Netty启动源码NioEventLoop剖析accept剖析read剖析write剖析
学习链接 NIO&Netty - 专栏 Netty核心技术十–Netty 核心源码剖析Netty核心技术九–TCP 粘包和拆包及解决方案Netty核心技术七–Google ProtobufNetty核心技术六–Netty核心模块组件Netty核心技术五–Netty高性能架构设计 聊聊Netty那些事儿 - 专栏 一文搞懂Netty发送数…...
<03.13>八股文补充知识
import java.lang.reflect.*; public class Main {public static void main(String[] args) throws Exception {// 获取 Class 对象//1. 通过类字面量Class<?> clazz Person.class;//2 通过对象实例化String str "Hello";Class<?> clazz_str str.ge…...
[HUBUCTF 2022 新生赛]messy_traffic
下载附件 看到文件类型直接用wireshark打开,对MySQL协议进行追踪流,并没有什么发现,后面对NO.437发现有用信息,http追踪流 发现**system(‘cat passwd.txt’);**这里是在打开查看passwd.txt,密码是"SignUpForHUBU…...