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

代码随想录训练营第十八天| 150.逆波兰表达式求值 239.滑动窗口最大值 347.前k个高频元素

150.逆波兰表达式求值:

文档讲解:代码随想录|150.逆波兰表达式求值

视频讲解:栈的最后表演! | LeetCode:150. 逆波兰表达式求值_哔哩哔哩_bilibili

状态:已做出

思路:

这道题目是让我们按照逆波兰表达式来求值,逆波兰表达式可以使用栈的先进后出的形式来求值,因为根据给出的案列可以看出每次遍历到算数运算符后就会排出最后两个数来和运算符进行运算,运算后把值还要进行随后的操作,按照这个特点可以看得出来和栈的特性一样,只要每次把容器中的数字字符串转化为数字,遇到运算符后拿出栈的两个数运算把得出的值再次放入栈中,循环往复,最后栈里的数就是最终运算的结果,返回栈的栈顶元素既可,这时栈的元素绝对只有一个。
代码如下:

class Solution {
public:int evalRPN(vector<string>& tokens) {stack<int>st;//创建栈for(int i=0;i<tokens.size();++i) {int a1,a2,sum;//使用变量a1和a2来分别保存栈最后连个元素//接下来使用四个if语句来对运算符进行操作if(tokens[i]=="+") {a1=st.top();//保存栈顶也就是最后一个元素st.pop();//删除栈顶元素a2=st.top();//保存删除最后一个元素后的栈顶元素st.pop();//继续删除sum=a1+a2;st.push(sum);}else if(tokens[i]=="-") {a1=st.top();st.pop();a2=st.top();st.pop();sum=a2-a1;st.push(sum);}else if(tokens[i]=="*") {a1=st.top();st.pop();a2=st.top();st.pop();sum=a2*a1;st.push(sum);}else if(tokens[i]=="/") {a1=st.top();st.pop();a2=st.top();st.pop();sum=a2/a1;st.push(sum);}else {st.push(stoi(tokens[i]));//如果不是运算符就使用stoi库函数把字符串直接变成int型插入到栈中}}//在前面的循环结束后栈中的元素绝对只有一个元素,就是运算后的结果,直接返回栈顶元素即可return st.top();//}
};

 遇到的困难:

这道题目就是考察对栈的应用,只要能够想到使用栈本题就没有什么问题,唯一要注意的就是每次运算后的值要放入栈里,继续参与后续的运算。

收获:

通过此题的联系认识了逆波兰表达式,逆波兰表达式能在不使用括号的情况下正确的计算出运算符的优先级,这样就能让计算机更加快捷的实现计算,不用去找括号来判断运算符的优先级。

239.滑动窗口最大值:

文档讲解:代码随想录|239.滑动窗口最大值

视频讲解:单调队列正式登场!| LeetCode:239. 滑动窗口最大值_哔哩哔哩_bilibili

状态:已做出

思路:

这道题目是使用单调队列,难度有点大,我模仿文档的代码一开始用单调队列保存了数组中的元素,结果出错了,后来让ai对我的代码进行修改,才知道可以让单调队列保存数组的下标,这样在后续删除滑动窗口以外的元素直接使用单调队列里的下标来判断比判断元素要更加方便不容易出错。单调队列的大致使用思路就是让数组保存每个数组中的下标,当队列的第一个元素保存的下标不属于窗口时进行头删,每次插入数组下标时判断这这个下标元素是否大于队列里保存下标位置的元素,删除比此时数组下标元素小的所有队列保存的数组下标,让整个队列里的下标都是按照下标元素从大到小单调保存,这样每次对头都是此时窗口的最大值,每次只要保存对头下标指向的数组元素就返回这一系列的目标数组既可。文档给出的代码更加直观,逻辑更加清晰,我是按照文档的思路把全部功能在一个循环里实现了,可能不太直观。
因为最终代码是ai改善的,所以一下是ai修改的代码:

 

class Solution {
public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {deque<int> dq;  // 存储的是索引vector<int> result;for (int i = 0; i < nums.size(); ++i) {// 移除出窗口的索引,使用单调队列保存的索引来和滑动窗口最前面一个位置的索引进行比较if (!dq.empty() && dq.front() <= i - k) {dq.pop_front();}// 维护单调递减队列(从大到小),只要需要插入的索引代表的元素大于队列前面索引对应的元素,就删除,保证队列整体处于单调递减while (!dq.empty() && nums[i] >= nums[dq.back()]) {dq.pop_back();}dq.push_back(i);// 添加窗口最大值if (i >= k - 1) {result.push_back(nums[dq.front()]);}}return result;}
};

遇到的困难:

这道题目使用单调队列是保证队列里的元素保存顺序为单调递减的,实现这个操作其实不难,使用循环一个一个判断删除就行,但是当时最让我不理解的是怎么正确的判断出滑动窗口移动后需要删除的元素,一开始本打算直接用滑动窗口的最后以为元素来和单调队列对头元素进行对比来进行删除,但想实现这个操作还要额外用一个遍历来保存滑动窗口第一个位置下标,操作不太好控制,最后ai给我建议是让单调队列保存数组下标,用下标来判断是否要删除队头元素,这样设计比直接判断元素更加简便,后来通过ai改善的代码才解决了题目。

收获:

这道题目我第一次接触单调队列,通过练习了解了单调队列的特性和解题技巧,单调队列的设计操作本身其实不难,但是这道题目给出的要求要控制单调队列对头元素在非滑动窗口外就删除,这才是本体的难点,学习到了控制单调队列的方法。

347.前k个高频元素:

文档讲解:代码随想录|347.前k个高频元素

视频讲解:优先级队列正式登场!大顶堆、小顶堆该怎么用?| LeetCode:347.前 K 个高频元素_哔哩哔哩_bilibili

状态:已做出

思路:

这道题目的主要思路根据文档使用的优先队列来解决的。优先队列的特性是每次插入值后都会默认排序,这题是计算数组中元素的频率,所以使用map来保存元素的出现次数比较合适,优先队列使用小顶堆用仿函数来实现优先队列里的排序规则,优先队列里的元素是pair,用来存储map里的元素。使用小顶堆是为了让最小的出现次数排在队列前面,随后判断此时队列插入的元素个数是否大于题目给的k,大于就删除对头的元素,这样不断判断不断删除,让优先队列的元素个数保持在k个,最后讲这个优先队列里的first元素全部保存在vector容器中并返回既可。
代码如下: 

class Solution {
public://设置仿函数来对优先队列进行自定义排序class Mypair{public:bool operator()(pair<int,int>&a1,pair<int,int>&a2) {//这里设置和sort的bool类型自定义排序有不同,这里是大于符号指向那一边,哪一边优先度就大,而前面a1默认就是较小值,较小值优先度大就说明是小顶堆return a1.second>a2.second;}};vector<int> topKFrequent(vector<int>& nums, int k) {unordered_map<int,int>mp;//设置map来计算每个元素的出现次数//循环保存元素频率for(int i=0;i<nums.size();++i) {++mp[nums[i]];}priority_queue<pair<int,int>,vector<pair<int,int>>,Mypair>pq;//实现自定义的小顶堆优先队列//使用迭代器遍历unoedered_map容器把元素保存在优先队列中for(unordered_map<int,int>::iterator it=mp.begin();it!=mp.end();++it) {pq.push(*it);//当不同元素的个数大于k时需要把对头元素删除,这样就能准确的删除较小的频率元素,最后保存的就是前k高频元素if(pq.size()>k) {pq.pop();}}vector<int>relue;//使用循环把优先队列里的所有元素都保存在数组里并返回此数组for(int i=0;i<k;++i) {relue.push_back(pq.top().first);pq.pop();}return relue;}
};

遇到的困难:

这道题目的难点首先就是要想到优先队列,使用优先队列就是因为由优先队列插入的排序和删除元素时间复杂度都是logn,可以让后续删除和插入操作时间更优。还有一个难点就是要正确设计仿函数来改变优先队列的排序方式,只要仿函数设计正确了,后续使用优先队列既可。

收获:

通过这道题目可以体验到优先队列的特性和优势,还顺便复习了一下仿函数的设计,优先队列的优势就在于能在插入的同时动态的进行排序,并且排序的时间复杂度很小,这样能大大减少后续的操作,也进一步实践认识了仿函数的设计思路。

相关文章:

代码随想录训练营第十八天| 150.逆波兰表达式求值 239.滑动窗口最大值 347.前k个高频元素

150.逆波兰表达式求值&#xff1a; 文档讲解&#xff1a;代码随想录|150.逆波兰表达式求值 视频讲解&#xff1a;栈的最后表演&#xff01; | LeetCode&#xff1a;150. 逆波兰表达式求值_哔哩哔哩_bilibili 状态&#xff1a;已做出 思路&#xff1a; 这道题目是让我们按照逆波…...

数据中台产品功能介绍

在数字化转型浪潮中&#xff0c;数据中台作为企业数据管理与价值挖掘的核心枢纽&#xff0c;整合分散数据资源&#xff0c;构建统一的数据管理与服务体系。本数据中台产品涵盖数据可视化、数据建设、数据治理、数据采集开发和系统管理五大平台&#xff0c;以丰富且强大的功能模…...

第四章-初始化Direct3D

首先我们需要一个错误检测和抛出机制 inline std::string ToString(const HRESULT& result) {char buffer[256];sprintf_s(buffer, "error code : 0x%08X\n", result);return std::string(buffer); }class MyException : public std::runtime_error { public:My…...

实操3:6位数码管

文章目录 文章介绍仿真图原来的仿真代码教学用开发板段选和位选对应引脚思考题实物图 文章介绍 对应“案例5_3: 6位数码管显示0或者1【静态显示】” 跳转链接 要求&#xff1a;实现开发板的6位数码管同时显示0或者1 仿真图 原来的仿真代码 #include<reg52.h> // 头文件…...

常识补充(NVIDIA NVLink技术:打破GPU通信瓶颈的革命性互联技术)

文章目录 **引言&#xff1a;为什么需要NVLink&#xff1f;**1. NVLink技术概述1.1 什么是NVLink&#xff1f;1.2 NVLink的发展历程 2. NVLink vs. PCIe&#xff1a;关键对比2.1 带宽对比2.2 延迟对比 3. NVLink的架构与工作方式3.1 点对点直连&#xff08;P2P&#xff09;3.2 …...

openwrt 使用quilt 打补丁(patch)

1,引入 本文简单解释如何在OpenWRT下通过quilt命令打补丁--patch&#xff0c;也可查看openwrt官网提供的文档 2&#xff0c;以下代码通过编译net-snmp介绍 ① 执行编译命令之后&#xff0c;进入build_dir的net-snmp-5.9.1目录下&#xff0c;改目录即为snmp最终编译的目录了 /…...

NVIDIA Halos:智能汽车革命中的全栈式安全系统

高级辅助驾驶行业正面临一个尴尬的"安全悖论"——传感器数量翻倍的同时&#xff0c;事故率曲线却迟迟不见明显下降。究其原因&#xff0c;当前行业普遍存在三大技术困局&#xff1a; 碎片化安全方案 传统方案就像"打补丁"&#xff0c;激光雷达厂商只管点云…...

k8s术语之service

Kubernetes在设计之初就充分考虑了针对容器的服务发现与负载均衡机制&#xff0c;提供了Service资源&#xff0c;并通过kube-proxy配合cloud provider 来适应不同的用于场景。随着kubernetes用户的激增&#xff0c;用户场景的不断丰富&#xff0c;又产生了一些新的负载均衡机制…...

C/C++工程中的Plugin机制设计与Python实现

C/C工程中的Plugin机制设计与Python实现 1. Plugin机制设计概述 在C/C工程中实现Plugin机制通常需要以下几个关键组件&#xff1a; Plugin接口定义&#xff1a;定义统一的接口规范动态加载机制&#xff1a;运行时加载动态库注册机制&#xff1a;Plugin向主程序注册自己通信机…...

RNN 与 CNN:深度学习中的两大经典模型技术解析

在人工智能和深度学习领域,RNN(Recurrent Neural Network,循环神经网络) 和 CNN(Convolutional Neural Network,卷积神经网络) 是两种非常重要的神经网络结构。 它们分别擅长处理不同类型的数据,在自然语言处理、计算机视觉等多个领域中发挥着关键作用。 本文将从原理…...

多模态训练与微调

1.为什么多模态模型需要大规模预训练&#xff1f; 多模态模型需要大规模预训练的原因包括&#xff1a; (1)数据丰富性&#xff1a;大规模预训练可以暴露模型于丰富的数据&#xff0c;提升其泛化能力。 (2)特征提取&#xff1a;通过预训练&#xff0c;模型能够学习到有效的特…...

【HDLBits刷题】Verilog Language——1.Basics

目录 一、题目与题解 1.Simple wire&#xff08;简单导线&#xff09; 2.Four wires&#xff08;4线&#xff09; 3.Inverter&#xff08;逆变器&#xff08;非门&#xff09;&#xff09; 4.AND gate &#xff08;与门&#xff09; 5. NOR gate &#xff08;或非门&am…...

基于深度学习的图像识别技术:从原理到应用

前言 在当今数字化时代&#xff0c;图像识别技术已经渗透到我们生活的方方面面&#xff0c;从智能手机的人脸解锁功能到自动驾驶汽车对交通标志的识别&#xff0c;再到医疗影像诊断中的病变检测&#xff0c;图像识别技术正以其强大的功能和广泛的应用前景&#xff0c;改变着我们…...

【coze】手册小助手(提示词、知识库、交互、发布)

【coze】手册小助手&#xff08;提示词、知识库、交互、发布&#xff09; 1、创建智能体2、添加提示词3、创建知识库4、测试智能体5、添加交互功能6、发布智能体 1、创建智能体 2、添加提示词 # 角色 你是帮助用户搜索手册资料的AI助手 ## 工作流程 ### 步骤一:查询知识库 1.每…...

【教学类-34-11】20250506异形拼图块(圆形、三角、正方,椭圆/半圆)的中2班幼儿偏好性测试(HTML)

背景介绍 最近在写一份工具运用报告,关于剪纸难度的。所以设计了蝴蝶描边系列和异形凹凸角拼图。 【教学类-102-20】蝴蝶三色图作品2——卡纸蝴蝶“满格变形图”(滴颜料按压对称花纹、原图切边后变形放大到A4横版最大化)-CSDN博客文章浏览阅读609次,点赞8次,收藏3次。【…...

Debian系统上PostgreSQL15版本安装调试插件及DBeaver相应配置

PostgreSQL所在Debian Linux服务器安装插件程序 在PostgreSQL数据库服务器Debian系统上执行以下命令&#xff0c;安装插件pldebugger: sudo apt install postgresql-15-pldebugger #上面这一条命令运行完好像pgsql服务自动重启了&#xff0c;看日志的样子是这样的&#xff0c…...

GD32F470+CH395Q

tcp_client配置 第一步&#xff1a;资料下载 以太网协议栈芯片 CH395 - 南京沁恒微电子股份有限公司 第二步&#xff1a;准备工程 &#xff08;1&#xff09; 首先准备一个编译无报错、可以正常打印和延时的工程文件&#xff0c;官方例程采用STM32F1芯片&#xff0c;但本文…...

解决Hyper-V无法启动Debian 12虚拟机

问题 有时&#xff0c;我们会想要在Hyper-V中运行Debian12。我们想利用该系统的ISO镜像文件安装一个全新的虚拟机。 然而&#xff0c;当我们在Hyper-V中创建了一个2代虚拟机、添加了Debian 12的网络安装&#xff08;Netinst&#xff09;ISO作为最先启动的介质时&#xff0c;Hy…...

linux redis 设置密码以及redis拓展

redis拓展:http://pecl.php.net/package/redis 在服务器上&#xff0c;这里以linux服务器为例&#xff0c;为redis配置密码。 需要永久配置密码的话就去redis.conf的配置文件中找到requirepass这个参数&#xff0c;如下配置&#xff1a; 修改redis.conf配置文件 # requirepass …...

uniapp app 端获取陀螺仪数据的实现攻略

在 uniapp 开发中&#xff0c;uni.startGyroscope在 app 端并不被支持&#xff0c;这给需要获取陀螺仪数据的开发者带来了挑战。不过&#xff0c;借助 Native.js&#xff0c;我们能调用安卓原生代码实现这一需求。接下来&#xff0c;就为大家详细介绍实现步骤&#xff0c;并附上…...

第三节:Vben Admin 最新 v5.0 对接后端登录接口(下)

文章目录 前言一、处理请求头Authorization二、/auth/user/info 接口前端接口后端接口三、/auth/codes 接口1.前端2.后端四、测试接口前言 上一节内容,实现了登录的/auth/login 接口,但是登陆没有完成,还需要完成下面两个接口。才能完成登录。 一、处理请求头Authorizatio…...

标题:基于自适应阈值与K-means聚类的图像行列排序与拼接处理

摘要&#xff1a; 本文提出了一种基于自适应阈值和K-means聚类的图像行列排序与拼接方法。通过对灰度图像的自适应二值化处理&#xff0c;计算并分析图像的左右边距&#xff0c;从而确定图像的行数与列数。通过对图像进行特征提取&#xff0c;并使用K-means聚类进行排序&#…...

修改磁盘权限为管理员

1.右击需要修改的磁盘&#xff0c;点击属性 然后一路点击确定 已经修改好了...

P1782 旅行商的背包 Solution

Description 有一个体积为 C C C 的背包和若干种物品. 前 n n n 种物品&#xff0c;第 i i i 种体积为 v i v_i vi​&#xff0c;价值 w i w_i wi​&#xff0c;有 d i d_i di​ 件. 后 m m m 种物品&#xff0c;每种对应一个函数 f ( x ) a i x 2 b i x c i f(x)a…...

Acrel-EIoT 能源物联网云平台在能耗监测系统中的创新设计

摘要 随着能源管理的重要性日益凸显&#xff0c;能耗监测系统成为实现能源高效利用的关键手段。本文详细介绍了基于安科瑞Acrel-EIoT能源物联网云平台的能耗监测系统的设计架构与应用实践。该平台采用分层分布式结构&#xff0c;涵盖感知层、网络层、平台层和应用层&#xff0…...

乘法逆元【费马小定理+扩展欧几里得】

目录 模运算性质费马小定理乘法逆元扩展欧几里得算法随机栈 模运算性质 费马小定理 a,b互质&#xff1a;gcd(a,b)1 乘法逆元 a,b互质,满足a*x同余1(mod b),x是a模b的乘法逆元&#xff0c;记作a的-1次方。 扩展欧几里得算法 求axbygcd(a,b)的一组(x,y). 随机栈 题目来源&…...

Linux进程间通信(上)(21)

文章目录 前言一、什么是进程间通信&#xff1f;概念目的本质分类 二、管道什么是管道匿名管道匿名管道的原理pipe函数匿名管道使用步骤管道读写规则管道的特点管道的四种特殊情况管道的大小 总结 前言 本篇出得有点慢&#xff0c;因为我在这里更换了我的开发环境   不再使用…...

力扣面试150题--对称二叉树

Day 41 题目描述 做法 原理&#xff1a;拆分为根节点的左右两棵子树&#xff0c;比较左子树的右和右子树的左&#xff0c;左子树的左和右子树的右 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode righ…...

深度学习系统学习系列【6】之深度学习技巧

文章目录 数据集准备数据集扩展数据预处理1. 0均值&#xff08;Zero Centralization&#xff09;代码实现 2. 归一化&#xff08;Normalization&#xff09;代码实现 3. 主成分分析&#xff08;Principal Component Analysis, PCA&#xff09;实现步骤代码实现 4. 白化&#xf…...

vue项目中渲染markdown并处理报错

前言&#xff1a;想在vue项目中渲染markdown并处理报错问题 有以下几种方式&#xff1a; 1、使用第三方Markdown插件 2、通过Markdown转HTML工具 3、使用Vue组件处理Markdown 一、首先第一种&#xff1a;使用第三方Markdown插件 安装vue-markdown插件 或者 markdown-it&#xf…...

Vue3.5 企业级管理系统实战(十七):角色管理

本篇主要探讨角色管理功能&#xff0c;其中菜单权限这里先不实现&#xff0c;后续在菜单管理中再进行实现。接口部分依然是使用 Apifox mock 的。 1 角色 api 在 src/api/role.ts 中添加角色相关 api&#xff0c;代码如下&#xff1a; //src/api/role.ts import service fro…...

【AI论文】FormalMATH:大型语言模型形式化数学推理能力基准测试

摘要&#xff1a;正式的数学推理仍然是人工智能面临的一个关键挑战&#xff0c;受到现有基准在范围和规模上的限制。 为了解决这个问题&#xff0c;我们提出了FormalMATH&#xff0c;这是一个大规模的Lean4基准&#xff0c;包含5560个经过形式验证的问题&#xff0c;这些问题涵…...

9-4 USART串口数据包

HEX数据包的接收 研究几个小问题 1.包头包尾和数据载荷重复的问题 这里定义FF为包头&#xff0c;FE为包尾&#xff0c;如果我传输的数据本身就是FF和FE怎么呢&#xff1f;那这个问题确实存在&#xff0c;如果数据和包头包尾重复&#xff0c;可能会引起误判。我们有以下几种解…...

Babylon.js学习之路《 前言:为什么要学习Babylon.js 》

文章目录 引言&#xff1a;3D 开发在 Web 中的崛起为什么需要 Web 3D 开发&#xff1f;当选火热的应用场景数据表达方式的改变 Web 3D 的独特优势跨平台与零安装开发成本低即时更新与传播便捷 WebGL 的定位与挑战WebGL 是什么&#xff1f;WebGL 的直接使用痛点 为什么需要 Baby…...

今年我国已发生三级以上地震318次

快科技5月6日消息&#xff0c;根据中国地震台网的统计&#xff0c;今年以来&#xff08;截至4月30日&#xff09;&#xff0c;我国共发生三级以上地震318次&#xff0c;其中3.0-3.9级248次&#xff0c;4.0-4.9级61次&#xff0c;5.0-5.9级7次&#xff0c;6.0-6.9级2次&#xff…...

在与大语言模型交互中的礼貌现象:技术影响、社会行为与文化意义的多维度探讨

概述 关于是否值得对 AI 保持礼貌的公众意见&#xff0c;几乎和咖啡或红酒的最新研究结果一样频繁变化——这个月被推崇备至&#xff0c;下个月又受到质疑。即便如此&#xff0c;越来越多的用户现在在提示语中加入“请”或“谢谢”&#xff0c;这不仅仅是因为习惯&#xff0c;…...

Java后端开发day42--IO流(二)--字符集字符流

&#xff08;以下内容全部来自上述课程&#xff09; 拓展. try…catch异常处理&#xff08;能看懂&#xff09; 接口&#xff1a;AutoCloseable 特点&#xff1a;特定的情况下&#xff0c;可以自动释放资源 注意&#xff1a;只有实现了AutoCloseable接口的类&#xff0c;才能…...

【HarmonyOS 5】鸿蒙发展历程

【HarmonyOS 5】鸿蒙发展历程 一、鸿蒙 HarmonyOS 版本年代记 鸿蒙 1.0&#xff1a; 2019 年 8 月 9 日&#xff0c;华为在开发者大会上正式发布鸿蒙 1.0 系统&#xff0c;这一版本首次应用于华为荣耀智慧屏产品中&#xff0c;标志着华为正式进军操作系统领域。该版本初步展现…...

使用蚁群算法求解VRPTW问题

这里写目录标题 蚁群优化算法Python实现ACO求解VRPTW问题Java实现ACO求解VRPTW问题蚁群优化算法 蚁群算法(ACO)适合求解带时间窗的车辆路径优化问题(VRPTW),主要基于其仿生智能机制与问题特性的深度契合,具体体现在以下六个方面: 时间窗约束的自然映射 信息素导向与时间…...

内存的位运算

示例&#xff1a;提取和设置标志位 假设我们有一个32位的整数&#xff0c;其中不同的位代表不同的标志。例如&#xff1a; 位0&#xff1a;是否开启日志&#xff08;0表示关闭&#xff0c;1表示开启&#xff09; 位1&#xff1a;是否启用调试模式&#xff08;0表示禁用&#…...

高性能网络优化:深入解析忙轮询(Busy Polling)技术

在现代高性能网络应用中,如何降低数据包处理延迟、提升吞吐量是开发者与系统工程师的核心挑战之一。传统的“中断驱动”模式在高负载场景下表现不佳,而忙轮询(Busy Polling) 作为一种优化技术,通过主动轮询机制显著改善网络性能。本文将从原理、实现到实践,全面解析忙轮询…...

Linux grep 命令详解及示例大全

文章目录 一、基本语法二、常用选项及示例1. 基本匹配&#xff1a;查找包含某字符串的行2. 忽略大小写匹配 -i3. 显示行号 -n4. 递归查找目录下的文件 -r 或 -R5. 仅显示匹配的字符串 -o6. 使用正则表达式 -E&#xff08;扩展&#xff09;或 egrep7. 显示匹配前后行 -A, -B, -C…...

前端知识-hook

React 的生命周期管理被称为 Hook 技术&#xff0c;源于其设计哲学与实现机制中“钩入”组件运行流程的特性。这一命名既是对传统编程中“钩子”&#xff08;Hook&#xff09;概念的延伸&#xff0c;也体现了 React 对函数式组件的逻辑注入能力。以下从多个维度解析其关联性&am…...

uv全功能更新:统一管理Python项目、工具、脚本和环境的终极解决方案

花下猫语&#xff1a;uv 项目自发布起就大受欢迎&#xff0c;目前 Github star 52.6 K&#xff0c;远超过它的同类竞品们。前不久&#xff0c;它的创始人在 X 上披露了一组惊人的数据&#xff1a;uv 曾占据了 PyPI 超过 20% 的流量&#xff0c;用户每天通过它发起约 4-5 亿次下…...

Redis 使用及命令操作

文章目录 一、基本命令二、redis 设置键的生存时间或过期时间三、SortSet 排序集合类型操作四、查看中文五、密码设置和查看密码的方法六、关于 Redis 的 database 相关基础七、查看内存占用 一、基本命令 # 查看版本 redis-cli --version 结果&#xff1a;redis-cli 8.0.0red…...

ROS2:自定义接口文件(无废话)

目录 一、ROS2接口文件定义二、创建接口文件步骤三、验证是否创建成功&#xff0c;以及自定义接口文件的使用 一、ROS2接口文件定义 ROS2中接口文件的格式根据通信的类型可以分为三种&#xff1a; 话题通信&#xff1a;.msg文件 常用格式为&#xff1a;[消息类型] 消息名称 #话…...

如何配置 VScode 断点调试Linux 工程代码

1、Windowns 安装WSL 环境 2、VSCode 中 安装 Romote-SSH扩展&#xff0c;进行连接到WSL下的Linux 环境 安装Romote-SSH成功后&#xff0c;在左下角显示 &#xff0c; 点击此图标 出现 “连接到WSL”, 进行连接 显示&#xff0c;则表明链接成功 3、 VSCode 安装 C/C扩展的调试…...

tinyrenderer笔记(Phong光照模型)

tinyrenderer个人代码仓库&#xff1a;tinyrenderer个人练习代码 前言 在前面的渲染中&#xff0c;我们读取模型的 diffuse 纹理&#xff0c;然后根据法线计算模型的颜色。这次我们引入一种新的光照模型—— Phong 光照模型&#xff0c;Phong 光照模型将光照分为了三类&#x…...

Twin Builder 中的电池等效电路模型仿真

电池单元热设计挑战 电池热管理的主要挑战之一是确保温度低于最大工作限值。较高的温度会导致效率降低、加速老化和潜在的安全隐患。工程师必须了解电池产生的热量&#xff0c;才能充分设计冷却系统。 了解和预测电池模块的热行为需要将电池的热损耗与电池单元的电气机械特性…...

SQLark可以支持PostgreSQL了,有哪些新功能?

SQLark&#xff08;百灵连接&#xff09;是一款国产的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统&#xff0c;支持达梦、Oracle 和 MySQL 数据库。 最新发布的 SQLark V3.4 版本新增了对 PostgreSQL 数据库的支持。我试用了一下&#xff…...