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

25.4.22华为--算法真题整理(2025年4月22日)

120.三角形最小路径和(120.三角形最小路径和)

题目分析:

给定一个三角形,用二维列表triangle表示,现在约定:自顶向下移动,每一步只能移动到下一行中相邻的节点上,即当前行的下标为i,则可移动到下一行下标为i或i+1处。现求自顶向下的最小路径和并输出。

解题思路:

回溯法:(超出时间限制)
  • 回溯的终止条件:达到最下层,尝试更新最短路径和,并返回
  • 回溯的参数:triangle,当前遍历行i,当前下标j,总行数n
  • 回溯的返回值:void
  • 回溯的搜索遍历逻辑:
    • 尝试下一行下标为j处加入路径
    • 尝试下一行下标为j+1处加入路径
    • 返回
class Solution {int res = Integer.MAX_VALUE;int cur = 0;public int minimumTotal(List<List<Integer>> triangle) {backtracking(triangle, 0, 0, triangle.size());return res;}public void backtracking(List<List<Integer>> triangle, int i, int j, int n) {if(i == n) {res = cur < res ? cur : res;return;}cur += triangle.get(i).get(j);backtracking(triangle, i + 1, j, n);backtracking(triangle, i + 1, j + 1, n);cur -= triangle.get(i).get(j);}
}
动态规划法:
  1. dp数组以及下标的含义:假设triangle共有n层,那么任意路径中均有n个节点,定义dp数组,其中dp[i][j]表示走到位置(i, j)的最小路径和。
  2. 递推公式:dp[i][j] = min(dp[i-1][j], dp[i-1][j-1])
  3. dp数组初始化:
    1. 任意第i层的下标为0的节点,均只能从上一层下标为0的节点到达,因此初始化dp[i][0] = dp[i-1][0] + triangle.get(i).get(0),而dp[0][0]就是triangle.get(0).get(0)
    2. 任意第i层的下标为i的节点,只能由第i-1层的下标为i-1处的节点得到。
  1. 确定遍历顺序:观察递推公式,先自顶向下,再从左往右遍历即可,最终从dp[n-1][j]中选出最小者。
class Solution {public int minimumTotal(List<List<Integer>> triangle) {int res = Integer.MAX_VALUE;int n = triangle.size();int[][] dp = new int[n][n];dp[0][0] = triangle.get(0).get(0);for(int i = 1; i < n; i++) {dp[i][0] = dp[i - 1][0] + triangle.get(i).get(0);for(int j = 1; j < i; j++) {dp[i][j] = Math.min(dp[i - 1][j], dp[i - 1][j - 1]) + triangle.get(i).get(j);}dp[i][i] = dp[i - 1][i - 1] + triangle.get(i).get(i);}for(int j = 0; j < n; j++) {res = dp[n - 1][j] < res ? dp[n - 1][j] : res;}return res;}
}
动态规划思路优化:

观察递推公式,发现每一层的dp只与上一层有关,可以考虑化简dp为一维数组。

  1. dp数组以及下标的含义:dp[j]表示到当前层下标为j处的节点的最小路径和
  2. 确定dp数组递推公式:dp[j] += Math.min(dp[j-1], dp[j]) + triangle(i)(j)
  3. dp数组初始化:对第0列和每一层的第i列特殊化,dp[0]最开始初始化为triangle[0][0]
  4. 确定递推方向:如果正序遍历,当尝试更新第i层的dp[j]时,实际上dp[j-1]已被更新,而dp[j]仍是第i-1层的dp[j],使得递推公式失效,因此必须倒序遍历。
class Solution {public int minimumTotal(List<List<Integer>> triangle) {int res = Integer.MAX_VALUE;int n = triangle.size();int[] dp = new int[n];dp[0] = triangle.get(0).get(0);for(int i = 1; i < n; i++) {dp[i] = dp[i - 1] + triangle.get(i).get(i);for(int j = i - 1; j > 0; j--) {dp[j] = Math.min(dp[j], dp[j - 1]) + triangle.get(i).get(j);}dp[0] = dp[0] + triangle.get(i).get(0);}for(int j = 0; j < n; j++) {res = dp[j] < res ? dp[j] : res;}return res;}
}

486.预测赢家(486.预测赢家)

题目分析:

给定一个整数数组nums,现在有玩家1和玩家2,两者轮流进行自己的回合,玩家1先手,两者的初始分值都是0。

每回合,玩家从数组的任意一端取一个数字并将其从数组中移除,且该数字会加到他的得分上,当数组中没有剩余数字可取时,游戏结束。

如果玩家1一定会输(不包括平局),返回false,否则返回true。

注意:假设每个玩家的玩法都会使他的分数最大化。

解题思路:

(参考官方题解)

记玩家1得分为正,记玩家2得分为负,两者分数的总和如果非负,那么玩家1获胜,否则玩家2获胜。

由于每次只能从数组的一端取数,因此可以用left和right来标定nums数组的合法区间。

递归搜索法:

设计一个递归函数,令玩家1和玩家2轮流取数,并用一个变量turn表示是谁的回合,如果是1则为玩家1的回合,如果是-1则为玩家2的回合。

当turn为1时,玩家1从左端或右端选取数并乘上系数1加至该选择的得分上,此时加的是正数;当turn为-1时,玩家2选数,加的是负数。

当left == end时无其他可选,递归结束,将该数乘上系数并直接返回。

由于每个玩家都会选择令他们得分最大化的选择,因此每层递归返回的总分应选取两种方案中的较大者。

class Solution {public boolean predictTheWinner(int[] nums) {return totalScore(nums, 0, nums.length - 1, 1) >= 0;}public int totalScore(int[] nums, int left, int right, int turn) {if (left == right) {return nums[left] * turn;}int scoreLeft = nums[left] * turn + totalScore(nums, left + 1, right, -turn);// 表示从nums左侧选数的总分int scoreRight = nums[right] * turn + totalScore(nums, left, right - 1, -turn);// 表示从nums右侧选数的总分return Math.max(scoreLeft * turn, scoreRight * turn) * turn;// 乘上对应系数,即相对当前玩家的总分,返回时应抵消该系数}
}
动态规划法:

定义一个行数和列数都为n的dp数组:

  1. dp数组以及下标的定义:dp[i][j]表示当数组中剩下的部分为下标i到下标j时,当前玩家与另一个玩家的分数之差的最大值。
  2. 递推公式:当前玩家可以选择nums[i]或nums[j],然后轮到另一个玩家在数组剩下的部分选取数字,则在这两种方案中,当前玩家会选择最优的方案使得自己的分数最大化,因此得到:
    1. dp[i][j] = max(nums[i] - dp[i+1][j], nums[j] - dp[i][j-1]),最后判断dp[0][nums.length - 1]是否非负,如果非负则先手赢,否则后手赢。
  1. dp数组初始化:当i > j时,dp[i][j] = 0。当i = j时,表示只剩一个数字,则dp[i][i] = nums[i]
  2. 确定遍历方向:计算dp第i行的值时,要用到第i行和第i+1行的值,所以对i倒序遍历;计算dp第j列的值时,鸭涌道第j列和第j-1列的值,所以对j正序遍历。
class Solution {public boolean predictTheWinner(int[] nums) {int n = nums.length;int[][] dp = new int[n][n];for(int i = 0; i < n; i++) {dp[i][i] = nums[i];}for(int i = n - 2; i >= 0; i--) {for(int j = i + 1; j < n; j++) {dp[i][j] = Math.max(nums[i] - dp[i + 1][j], nums[j] - dp[i][j - 1]);}}return dp[0][n - 1] >= 0;}
}
一维动态规划:

第i行只依赖第i+1行和第i行的值,因此可以使用一维数组替代二维数组。

class Solution {public boolean predictTheWinner(int[] nums) {int n = nums.length;int[] dp = new int[n];/*for(int i = 0; i < n; i++) {dp[i] = nums[i];}*/for(int i = n - 1; i >= 0; i--) {dp[i] = nums[i];for(int j = i + 1; j < n; j++) {dp[j] = Math.max(nums[i] - dp[j], nums[j] - dp[j - 1]);}}return dp[n - 1] >= 0;}
}

912.排序数组(912.排序数组)

题目要求:

不使用任何内置函数,用快速排序算法实现升序排列

class Solution {public int[] sortArray(int[] nums) {quickSort(nums, 0, nums.length - 1);return nums;}public void quickSort(int[] nums, int l, int r) {if (l == r) return;int i = l - 1;int j = r + 1;int x = nums[l + r >> 1];while (i < j) {while(nums[++i] < x);while(nums[--j] > x);if (i < j) {int temp = nums[j];nums[j] = nums[i];nums[i] = temp;}}quickSort(nums, l, j);quickSort(nums, j + 1, r);}
}

877.石子游戏(877.石子游戏)

题目分析:

a和b正在用几堆石子做游戏,一共有偶数堆石子,排成一行,每堆石子的个数是正整数,记为piles[i]。

已知石子的总数是奇数,游戏以最终谁手中的石子更多来决定胜负。

a和b轮流进行,a先手。每回合,玩家从行的开始或结束处取走整堆石头,这种情况一直持续到没有更多的石子堆为止。

可以假设两者均做出最优选择,如果a赢得比赛则返回true,b赢得比赛则返回false。

解题思路:

动态规划法:
  1. 确定dp数组以及下标的含义:dp[i][j]表示当剩余石子的区间为[i, j]时,两者总分差的最大值,先手者分高时分差为正,后手者分高时分差为负。
  2. 确定递推公式:当前选手一定选择对于自己来说两种方案之一的最优解,则dp[i][j] = max(piles[i] - dp[i+1][j], piles[j] - dp[i][j-1])
  3. dp数组初始化:当且仅当i >= j时,dp数组有意义,而i == j时,只有一堆石子,则dp[i][i] = piles[i]
  4. 确定遍历方向:观察递推公式,可知i倒序遍历,j正序遍历
class Solution {public boolean stoneGame(int[] piles) {int n = piles.length;int[][] dp = new int[n][n];for(int i = n - 1; i >= 0; i--) {dp[i][i] = piles[i];for(int j = i + 1; j < n; j++) {dp[i][j] = Math.max(piles[i] - dp[i+1][j], piles[j] - dp[i][j-1]);}}return dp[0][n - 1] >= 0;}
}
一维动态规划:
class Solution {public boolean stoneGame(int[] piles) {int n = piles.length;int[] dp = new int[n];for(int i = n - 1; i >= 0; i--) {dp[i] = piles[i];for(int j = i + 1; j < n; j++) {dp[j] = Math.max(piles[i] - dp[j], piles[j] - dp[j-1]);}}return dp[n - 1] >= 0;}
}
数学性质巧解法:

这道题和486.预测赢家非常像,但包含了两个特殊条件:

  1. piles长度为偶数
  2. piles的数组和为奇数

因此,可以将piles按照下标的奇偶性分成两组,那么每当先手的a选取时,剩余piles的头、尾石子堆分属不同组;而当后手的b选取时,剩余piles的头、尾石子堆一定属于同组(奇偶性相同)。

那么我们可以假设,先手的a一开始从奇数组或偶数组中选取石子堆时,后续就一直从这一组中选取,那么后手的b一定只能从另一组中选取,由于piles数组和为奇数且奇数组和偶数组的元素个数相同,必然存在一组的数组和更大,因此可以直接返回true

class Solution {public boolean stoneGame(int[] piles) {return true;}
}

相关文章:

25.4.22华为--算法真题整理(2025年4月22日)

120.三角形最小路径和&#xff08;120.三角形最小路径和&#xff09; 题目分析&#xff1a; 给定一个三角形&#xff0c;用二维列表triangle表示&#xff0c;现在约定&#xff1a;自顶向下移动&#xff0c;每一步只能移动到下一行中相邻的节点上&#xff0c;即当前行的下标为…...

C语言高频面试题——指针函数和函数指针的区别

在 C 语言中&#xff0c;指针函数 和 函数指针 是两个容易混淆的概念&#xff0c;但它们的功能和用途完全不同。以下是详细的对比分析&#xff0c;帮助你彻底理解它们的区别。 1. 指针函数&#xff08;Function Returning a Pointer&#xff09; 定义 指针函数 是一个返回值为…...

MQTTClient_message 源码深度解析与架构设计

一、结构体内存布局与版本控制机制 #mermaid-svg-i9W8883mELYm6HUj {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-i9W8883mELYm6HUj .error-icon{fill:#552222;}#mermaid-svg-i9W8883mELYm6HUj .error-text{fill:#…...

4.21—4.22学习总结 JavaWeb:HTML-CSS

Web&#xff1a;能够通过浏览器访问到的网站。 Web标准&#xff1a; HTML&#xff1a; vscode中进行注释的快捷键为ctrl斜线/ h1的字体最大&#xff0c;依次递减&#xff0c;只存在h1—h6。 超链接&#xff1a; 设置字体颜色&#xff1a; 方式三写一个css文件&#xff0c;将方…...

STM32的定时器输出PWM时,死区时间(DTR)如何计算

在 STM32F429&#xff08;以及所有 STM32F4 “高级定时器”&#xff09;中&#xff0c;死区时间由 TIMx_BDTR 寄存器的 8 位 “Dead‑Time Generator” 字段 DTG[7:0] 来配置。其计算分三步&#xff1a; 计算死区时钟周期 tDTS TIM1 时钟源为 APB2 定时器时钟&#xff08;PCL…...

4.LinkedList的模拟实现:

LinkedList的底层是一个不带头的双向链表。 不带头双向链表中的每一个节点有三个域&#xff1a;值域&#xff0c;上一个节点的域&#xff0c;下一个节点的域。 不带头双向链表的实现&#xff1a; public class Mylinkdelist{//定义一个内部类&#xff08;节点&#xff09;stat…...

使用PyTorch构建神经网络笔记

专有名词 Batch Size 在深度学习中&#xff0c;批大小&#xff08;Batch Size&#xff09; 是指每次前向传播和反向传播时使用的样本数量。它是训练神经网络时的一个关键超参数&#xff0c;直接影响训练速度、内存占用和模型性能。 (1) 计算梯度 在训练时&#xff0c;模型通过…...

麒麟系统网络连接问题排查

麒麟系统网络连接有红色叹号,不能上外网 了。 首先执行 ping -c4 8.8.8.8 和 nc -zv 8.8.8.8 53,如果 都能正常通信,说明你的网络可以访问公共 DNS 服务器(如 Google DNS 8.8.8.8),但域名解析仍然失败,可能是 DNS 解析配置问题 或 系统 DNS 缓存/代理干扰。以下是进一步…...

python高级特性01

装饰器 基本语法 在不改变原函数的基础上&#xff0c;新增/修改一些功能 在被装饰函数/类前使用&#xff1a;decorator_name 装饰器接收一个函数返回一个新函数 def decorator_name(func):# 装饰器的操作...def wrapper(*args, **kwargs):# 前置操作...result func()# 后置…...

shared_ptr八股收集 C++

&#xff08;1&#xff09;、具体讲一下shared_ptr自动管理内存的原理/引用计数的具体原理/shared_ptr引用计数什么时候会增加&#xff0c;什么时候会减少&#xff1f; 在shared_ptr的内部维护了⼀个计数器&#xff0c;来跟踪有多少个shared_ptr对象指向了某⼀个资源。当计数器…...

【gpt生成-其二】以go语言为例,详细讲解 并发模型:线程/协程/ Actor 实现

Go语言并发模型详解&#xff1a;线程、协程与Actor实现 ​​1. 线程模型​​ ​​概念​​ 线程是操作系统调度的最小单位&#xff0c;每个线程拥有独立的栈和寄存器上下文&#xff0c;但共享进程的内存空间。线程的创建、切换和同步需要较高的系统开销。 ​​Go中的实现​​…...

nodejs创建文件

环境要求&#xff1a;nodejs 运行命令&#xff1a; node createComponent.js各文件内容&#xff1a; createComponent.js /** 功能概述&#xff1a;* 1. 通过命令行交互&#xff0c;用户输入组件名称&#xff0c;选择模板类型。* 2. 根据用户输入生成对应的Vue组件、Service…...

三餐四季、灯火阑珊

2025年4月22日&#xff0c;15~28℃&#xff0c;挺好的 待办&#xff1a; 教学技能大赛教案&#xff08;2025年4月24日&#xff0c;校赛&#xff0c;小组合作&#xff0c;其他成员给力&#xff0c;暂不影响校赛进度&#xff0c;搁置&#xff09; 教学技能大赛PPT&#xff08;202…...

HTTP状态码有哪些常见的类型?

HTTP 状态码用于表示服务器对客户端请求的响应状态&#xff0c;常见的 HTTP 状态码可以分为以下几类&#xff1a; 一、1xx&#xff1a;信息提示 状态码以 1 开头&#xff0c;表示请求已接收&#xff0c;客户端应继续其请求。常见的状态码有&#xff1a; • 100 Continue&…...

01-STM32基本知识点和keil5的安装

一、微控制器&#xff1a; 1、微控制器也被称为MCU&#xff08;国内称为单片机&#xff09;&#xff0c;微控制器集成了处理器、内存、输入/输出接口等多种功能模块&#xff0c;能够独立完成特定的控制任务。它主要用于对设备或系统的控制和监测&#xff0c;MCU通常是一个高度…...

前端如何优雅地对接后端

作为一名前端开发者&#xff0c;与后端对接是我们日常工作中不可避免的一部分。从API设计的理解到错误处理的优雅实现&#xff0c;前端需要的不只是调用接口的代码&#xff0c;更是一种协作的艺术。本文将从Vue 3项目出发&#xff0c;分享如何与后端高效协作&#xff0c;减少联…...

Centos虚拟机远程连接缓慢

文章目录 Centos虚拟机远程连接缓慢1. 问题&#xff1a;SSH远程连接卡顿现象2. 原因&#xff1a;SSH服务端DNS检测机制3. 解决方案&#xff1a;禁用DNS检测与性能调优3.1 核心修复步骤3.2 辅助优化措施 4. 扩展认识&#xff1a;SSH协议的核心机制4.1 SSH工作原理4.2 关键配置文…...

Centos 、Linux 基础运维命令

查看系统IP ifconfig 巡检常用 显示磁盘空间使用情况 df -h 配置主机名查称看主机名称 hostname 修改主机名称 打开修改的配置文件 vim /etc/sysconfig/network 防火墙 查看防火墙状态 service iptables status 临时关闭防火墙&#xff1a;关机重启后防火墙还会开启 …...

算力网络有关论文自用笔记(2)

MADRLOM: A Computation offloading mechanism for software-defined cloud-edge computing power network 本质上还是计算卸载&#xff0c;概念套壳 主要工作 一种由软件定义的云边缘计算电力网络体系结构&#xff0c;包括多个用户设备、多个边缘节点和一个云数据中心。用户…...

基于外部中中断机制,实现以下功能: 1.按键1,按下和释放后,点亮LED 2.按键2,按下和释放后,熄灭LED 3.按键3,按下和释放后,使得LED闪烁

题目&#xff1a; 参照外部中断的原理和代码示例,再结合之前已经实现的按键切换LED状态的实验&#xff0c;用外部中断改进其实现。 请自行参考文档《中断》当中&#xff0c;有关按键切换LED状态的内容, 自行连接电路图&#xff0c;基于外部中断机制&#xff0c;实现以下功能&am…...

Go语言和Python 3的协程对比

Go语言和Python 3都支持协程&#xff08;concurrent coroutines&#xff09;&#xff0c;但它们的实现机制、使用方式、调度方式和性能表现差异很大。下面是对比分析&#xff1a; 一、基本概念对比 特性Go 协程&#xff08;goroutine&#xff09;Python3 协程&#xff08;asyn…...

量子计算在密码学中的应用与挑战:重塑信息安全的未来

在当今数字化时代&#xff0c;信息安全已成为全球关注的焦点。随着量子计算技术的飞速发展&#xff0c;密码学领域正面临着前所未有的机遇与挑战。量子计算的强大计算能力为密码学带来了新的应用场景&#xff0c;同时也对传统密码体系构成了潜在威胁。本文将深入探讨量子计算在…...

java知识点

一、ArrayList 的扩容 1.ArrayList 的扩容机制是将新容量计算为原容量的 15倍&#xff0c;即 oldcapacity(oldcapacity >>1)。这个操作将新容量设置为当前容量的 1.5 倍。 2.在 ArrayList 扩容时&#xff0c;会使用 Arrays.copyof()方法来复制原数组中的元素到新数组中&a…...

工厂模式:工厂方法模式 和 抽象工厂模式

工厂方法模式&#xff1a;优化&#xff0c;工厂类也分子类和父类 流程&#xff1a; 实例&#xff1a; #include <iostream> using namespace std; /*抽象产品类 TV(电视机类)*/ class TV { public: virtual void Show() 0; virtual ~TV();//声明析构函数为虚函数&…...

遨游通讯发布国产化旗舰三防手机AORO AU1:以自主可控重塑工业安全

在全球产业链加速重构的背景下&#xff0c;国产化技术突破已成为工业领域高质量发展的核心驱动力。作为专精特新中小企业&#xff0c;遨游通讯始终以“让世界更安全、更高效、更简单”为使命&#xff0c;深耕“危、急、特”场景智能通信设备的研发。近日&#xff0c;遨游通讯正…...

全波暗室和半波暗室的区别

什么是微波暗室&#xff1f;其作用是什么&#xff1a; 微波暗室又叫吸波室、电波暗室&#xff0c;一般是指由吸波材料和金属屏蔽体组成的特殊房间&#xff0c;该房间可有效防止电磁波的多次反射、隔绝外界电磁波的干扰&#xff0c;提供一个稳定的电磁环境&#xff0c;(高级点的…...

Qt 下载的地址集合

Qt 下载离线安装包 download.qt.io/archive/qt/5.14/5.14.2/ Qt 6 安装下载在线安装包 Index of /qt/official_releases/online_installers/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror...

08_Docker Portainer可视化管理

简介&#xff1a; Portainer 是一个轻量级的、基于 Web 的 Docker 管理用户界面。它允许用户轻松管理 Docker 环境&#xff0c;包括 Docker 主机、容器、镜像、网络等。 多主机管理&#xff0c;Portainer 支持通过 agent 的方式管理多台 Docker 主机。无论是企业级大规模的 D…...

【产品经理从0到1】用户研究和需求分析

用户角色 定义 用户角色 user personal&#xff0c;从用户群体中抽象出来的典型用户&#xff0c;一般 会包含&#xff1a; 1、个人基本信息&#xff1b; 2、家庭、工作、生活环境描述&#xff1b; 3、与产品使用相关的具体情境&#xff0c;用户目标或产品使用行为描述等。 特…...

神经网络 “疑难杂症” 破解指南:梯度消失与爆炸全攻略(六)

引言 在神经网络的发展历程中&#xff0c;梯度消失和梯度爆炸如同两座难以翻越的大山&#xff0c;阻碍着深层神经网络发挥其强大的潜力。尤其是在处理复杂任务时&#xff0c;这两个问题可能导致模型训练陷入困境&#xff0c;无法达到预期的效果。本文将深入探讨梯度消失和梯度…...

深入理解无监督学习:探索数据的潜在结构

&#x1f4cc; 友情提示&#xff1a; 本文内容由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;创作平台的gpt-4o-mini模型生成&#xff0c;旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证&#xff0c;建议读者通过官方文档或实践进一步确认其准…...

Java实例化对象都有几种方式

在 Java 中&#xff0c;实例化对象的方式有多种&#xff0c;具体取决于场景需求和设计模式。以下是 ​7 种核心对象实例化方式及其原理、适用场景与代码示例&#xff1a; 1. ​new 关键字&#xff08;直接构造&#xff09;​ ​原理​&#xff1a;通过调用类的构造函数直接创建…...

数据结构:顺序表的实现

顺序表是用一段物理地址连续的存储单元依次储存数据的线性结构&#xff0c;一般情况下采用数组储存&#xff0c;在数组上完成数据的增删减改。 这里我们定义一个MyArrayList类&#xff0c;用来实现顺序表的功能&#xff1a; public class MyArrayList{int[] array;int usedsi…...

# 06_Elastic Stack 从入门到实践(六)

06_Elastic Stack 从入门到实践(六) 一、课程介绍 1、课程介绍 2、Nginx日志分析系统 3、Filebeat入门学习 4、Metricbeat入门学习 5、Kibana入门学习 6、Logstash入门学习 7、综合练习 二、Nginx 日志分析系统需求分析 1、业务需求 Nginx是一款非常优秀的web服务…...

[Android]豆包爱学v4.5.0小学到研究生 题目Ai解析

拍照解析答案 【应用名称】豆包爱学 【应用版本】4.5.0 【软件大小】95mb 【适用平台】安卓 【应用简介】豆包爱学&#xff0c;一般又称河马爱学教育平台app,河马爱学。 关于学习&#xff0c;你可能也需要一个“豆包爱学”这样的AI伙伴&#xff0c;它将为你提供全方位的学习帮助…...

重装系统后的自用包

装驱动 sudo apt update sudo apt upgrade sudo apt install nvidia-driver-535搜狗输入法&#xff1a; https://shurufa.sogou.com/linux/guideClash verge&#xff1a; ubuntu20 下载1.7.7版本的 https://github.com/clash-verge-rev/clash-verge-rev/releases/tag/v1.7.7…...

4.22tx视频后台开发一面

总时长大概在一个小时&#xff0c;主要提问C、操作系统、计网以及数据库等方面&#xff0c;最后两个算法编程题。 一上来先介绍项目 Linux下的mybash命令处理器和内存池 mybash可以再总结归纳一下&#xff0c;一上来有点紧张没有条理 内存池是用边界标识法写的&#xff0c;…...

如何Ubuntu 22.04.5 LTS 64 位 操作系统部署运行SLAM3! 详细流程

以下是在本地部署运行 ORB-SLAM3 的详细步骤&#xff0c;基于官方 README.md 和最佳实践整理&#xff0c;适用于 Ubuntu 16.04/18.04/20.04/22.04 系统&#xff1a; 一、系统要求与依赖项安装 1. 基础系统要求 操作系统&#xff1a;Ubuntu 16.04/18.04/20.04/22.04&#xff…...

Ubuntu 上安装 Conda

在 Ubuntu 上安装 Conda&#xff08;Anaconda 或 Miniconda&#xff09;的完整步骤如下&#xff1a; --- **方法1&#xff1a;安装 Miniconda&#xff08;推荐&#xff09;** Miniconda 是 Anaconda 的精简版&#xff0c;只包含基本组件。 **1. 下载安装脚本** bash # 下载最…...

初级云计算运维工程师学习二

全面解析云计算服务模式&#xff1a;公有云、私有云、混合云及IaaS/PaaS/SaaS/DaaS 云计算部署模式&#xff1a;三种主要形式 1. 公有云&#xff08;Public Cloud&#xff09; 定义&#xff1a;云端资源开放给社会公众使用&#xff0c;由第三方云服务提供商通过互联网交付。 …...

物联网蓬勃发展是助力楼宇自控技术迈向成熟的关键

在当今数字化时代&#xff0c;物联网&#xff08;IoT&#xff09;正以前所未有的速度蓬勃发展&#xff0c;其影响力已广泛渗透到各个领域&#xff0c;楼宇自控技术便是其中之一。从本质上讲&#xff0c;楼宇自控旨在实现对建筑物内各类机电设备的智能化管理与控制&#xff0c;为…...

数字孪生技术:企业数字化转型的助推器

在当今环境下&#xff0c;企业面临的挑战不断增加。从可持续发展目标的要求到员工数字技能的提升&#xff0c;转型的呼声越来越高。然而&#xff0c;即使是经验丰富的领导者&#xff0c;也很难在这种前所未有的商业环境下实现转型。企业如何在满足可持续发展目标的同时保持盈利…...

ESM 内功心法:化解 require 中的夺命一击!

前言 传闻在JavaScript与TypeScript武林中,曾有两大绝世心法:CommonJS与ESM。两派高手比肩而立,各自称霸一方,江湖一度风平浪静。 岂料,时局突变。ESM逐步修成阳春白雪之姿,登堂入室,成为主流正统。CommonJS则渐入下风,功力不济,逐渐退出主舞台。 话说某日,一位前…...

安全调度系统:安全管理的智能中枢

安全调度系统作为安全管理体系的核心枢纽&#xff0c;正在深刻改变着传统安全管理的模式和效能。这个集成了先进信息技术的智能化平台&#xff0c;通过实时监控、智能分析和快速响应三大核心功能&#xff0c;构建起全方位、多层次的安全防护网络&#xff0c;成为各类场所安全管…...

Python爬虫从入门到实战详细版教程Char01:爬虫基础与核心技术

1.1 什么是网络爬虫? 1.1.1 定义与分类 网络爬虫:互联网世界的“信息捕手” 网络爬虫(Web Crawler),又称网络蜘蛛或网络机器人,是一种通过预设规则自动访问网页、提取数据的程序系统。从技术视角看,其核心任务是通过模拟浏览器行为向目标服务器发起请求,解析网页内容…...

jsconfig.json文件的作用

jsconfig.json文件的作用 ​ 为什么今天会谈到这个呢&#xff1f;有这么一个场景&#xff1a;我们每次开发项目时都会给路径配置别名&#xff0c;配完别名之后可以简化我们的开发&#xff0c;但是随之而来的就有一个问题&#xff0c;一般来说&#xff0c;当我们使用相对路径时…...

Python线程全面详解:从基础概念到高级应用

一、线程基础概念 1.1 进程与线程的关系 进程是操作系统资源分配的基本单位&#xff0c;它是程序的一次执行过程。当我们将程序加载到内存中运行时&#xff0c;系统会为它分配CPU、内存、文件句柄等资源&#xff0c;这时就形成了一个进程。 线程是CPU调度的基本单位&#xf…...

学习模拟电路

学习模拟电路需要掌握以下几个关键领域的知识和技能&#xff0c;涵盖基础理论、器件特性、电路设计、分析工具以及实践应用&#xff1a; 1. 基础理论与概念 电路基本定律&#xff1a;欧姆定律、基尔霍夫电压定律&#xff08;KVL&#xff09;和电流定律&#xff08;KCL&#xf…...

解码思维链:AI思维链如何重塑人类与机器的对话逻辑

第一章&#xff1a;思维链的诞生与进化 1.1 从"猜谜游戏"到"推理革命" 传统AI模型如同蒙眼解题的考生&#xff1a;当被问及"玛丽有12块饼干&#xff0c;吃掉4块后剩下多少"&#xff0c;它们擅长预测答案&#xff0c;却无法展示"12-48&quo…...

css3新特性第六章(2D变换)

css3新特性第五章(2D变换) CSS3 转换可以对元素进行移动、缩放、转动、拉长或拉伸。 2D位移2D缩放2D旋转2D扭曲多重变换变换原点 一、2D位移 2D 位移可以改变元素的位置&#xff0c;具体使用方式如下&#xff1a; 先给元素添加 转换属性 transform 编写 transform 的具体值&…...