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

LeetCode994.腐烂的橘子

 看完题我觉得这不是和上一道岛屿的题一样简单嘛,然后写了将近2个小时才写出来,我的思路就是,用check()先对grid检查一下,是否有以下情况:

(如果有1的周围都是空,则这个位置用不腐烂,返回-1; 如果全是1,返回永不腐烂,返回-1;如果没有2,永不腐烂,则返回-1),

定义一个hasFresh()方法看grid中是不是还有fresh的橘子1,然后在orangesRotting()方法算minute。

就是在while(hasFresh())中对grid全部扫描一遍,如果有2,就把它放进栈中,扫描完了就把这些2的坐标拿出来,然后把2的周围的1变成2调用turnRot(),这算是变腐烂了1次,minute++,然后又是while去检查是否还有fresh,如果还有就继续腐烂,最后直到没有了fresh就跳出循环返回minute。

但是如果是一列2,2,1,0,1,1就出现死循环了,因为第一个1腐烂后无法去腐烂后面但是又始终hasFresh,

于是我加了一个visit布尔数组,如果发现了一个2并且它没有visit才把它放进栈,然后visit改为true表示已经用它腐烂过周围了不能再次腐烂周围了,下次扫面到这个2就不会放进栈了,那么上面的情况就当第一个1变成2并且visit后就没有可以放进栈的2了,所以扫描一遍后stack还是empty,所以当扫描一遍后stack还是empty的话直接返回-1,

以下是我的代码:

class Solution {public int orangesRotting(int[][] grid) {int m = grid.length;int n = grid[0].length;int minute =0;boolean[][] visit = new boolean[m][n];if(check(grid) == -1)return -1;while(hasFresh(grid)){Stack<Integer[]> stack = new Stack<>(); for(int i =0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j] == 2 && visit[i][j] == false){visit[i][j] = true;Integer[] index = new Integer[]{i,j};stack.push(index);}}}if(stack.isEmpty()){return -1;}while(!stack.isEmpty()){Integer[] a = stack.pop();grid = turnRot(grid, a[0], a[1]);}minute++;}return minute;}public int[][] turnRot(int[][] grid, int i, int j){if(i-1>=0 && grid[i-1][j]==1)grid[i-1][j] = 2;if(i+1<grid.length && grid[i+1][j]==1)grid[i+1][j] = 2;if(j-1>=0 && grid[i][j-1]==1)grid[i][j-1] = 2;if(j+1<grid[0].length && grid[i][j+1]==1)grid[i][j+1] = 2;return grid;}public boolean hasFresh(int[][] grid){int m = grid.length;int n = grid[0].length;for(int i =0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j] == 1)return true;}}return false;}public int check(int[][] grid){int m = grid.length;int n = grid[0].length;//如果有1的周围都是空,则这个位置用不腐烂,返回-1for(int i =0;i<m;i++){for(int j=0;j<n;j++){if((grid[i][j] == 1)){if(i-1>=0 && grid[i-1][j]!=0)continue;if(i+1<grid.length && grid[i+1][j]!=0)continue;if(j-1>=0 && grid[i][j-1]!=0)continue;if(j+1<grid[0].length && grid[i][j+1]!=0)continue;return -1;}}}if(statuCode == 0)return 0;//如果全是1,返回永不腐烂,返回-1statuCode = -1;for(int i =0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j] != 1){statuCode =1;}}}if(statuCode == -1)return -1;//如果没有2,用不腐烂,则返回-1statuCode =-1;for(int i =0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j] == 2){statuCode=1;}}}if(statuCode == -1)return -1;return 1;}}

我这个算法写的太屎了,尤其是check方法全靠一种一种情况排除,还是看看官方题解吧,写到这里的时候,我想去看看check方法能不能优化一下,把有些情况放一起check,比如那个全是1就不用判断了,因为它包含在没有2的情况里面,但是你猜怎么了?

我发现有了visit数组后,check中的所有情况都不用check,因为他们都是使得stack为空,直接返回-1了,我只能说牛逼。所以可以删掉check方法,改成代码如下:

class Solution {public int orangesRotting(int[][] grid) {int m = grid.length;int n = grid[0].length;int minute =0;boolean[][] visit = new boolean[m][n];while(hasFresh(grid)){Stack<Integer[]> stack = new Stack<>(); for(int i =0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j] == 2 && visit[i][j] == false){visit[i][j] = true;Integer[] index = new Integer[]{i,j};stack.push(index);}}}if(stack.isEmpty()){return -1;}while(!stack.isEmpty()){Integer[] a = stack.pop();grid = turnRot(grid, a[0], a[1]);}minute++;}return minute;}public int[][] turnRot(int[][] grid, int i, int j){if(i-1>=0 && grid[i-1][j]==1)grid[i-1][j] = 2;if(i+1<grid.length && grid[i+1][j]==1)grid[i+1][j] = 2;if(j-1>=0 && grid[i][j-1]==1)grid[i][j-1] = 2;if(j+1<grid[0].length && grid[i][j+1]==1)grid[i][j+1] = 2;return grid;}public boolean hasFresh(int[][] grid){int m = grid.length;int n = grid[0].length;for(int i =0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j] == 1)return true;}}return false;}}

看看官方题解的做法吧,题解用的叫多源广度优先搜索,和上一道题岛屿的数量的解法差不多,先上代码:

class Solution {int[] dr = new int[]{-1, 0, 1, 0};int[] dc = new int[]{0, -1, 0, 1};public int orangesRotting(int[][] grid) {int R = grid.length, C = grid[0].length;Queue<Integer> queue = new ArrayDeque<Integer>();Map<Integer, Integer> depth = new HashMap<Integer, Integer>();for (int r = 0; r < R; ++r) {for (int c = 0; c < C; ++c) {if (grid[r][c] == 2) {int code = r * C + c;queue.add(code);depth.put(code, 0);}}}int ans = 0;while (!queue.isEmpty()) {int code = queue.remove();int r = code / C, c = code % C;for (int k = 0; k < 4; ++k) {int nr = r + dr[k];int nc = c + dc[k];if (0 <= nr && nr < R && 0 <= nc && nc < C && grid[nr][nc] == 1) {grid[nr][nc] = 2;int ncode = nr * C + nc;queue.add(ncode);depth.put(ncode, depth.get(code) + 1);ans = depth.get(ncode);}}}for (int[] row: grid) {for (int v: row) {if (v == 1) {return -1;}}}return ans;}
}

它每个元素用序号(行号*每行的个数+列好)来表示,用一个队列来装一层的2的序号,然后用一个Map<Integer, Integer> depth表示每个节点的深度,key是序号,value是腐烂时间,他的腐烂时间其实就是父节点的腐烂时间+1,然后遍历完一次就把队列里的2取出来反向解出行号和列号,然后把周围腐烂,把周围的序号放进队列,把所有时间,也就是父节点时间+1放入map,然后取出时间,因为每次所放入的时间都是上一次的时间+1,所以最后一次的时间就是最大时间,所以最后返回ans是没有问题的,在返回之前先检查一遍,如果还有没腐烂的橘子1就返回-1。

相关文章:

LeetCode994.腐烂的橘子

看完题我觉得这不是和上一道岛屿的题一样简单嘛&#xff0c;然后写了将近2个小时才写出来&#xff0c;我的思路就是&#xff0c;用check()先对grid检查一下&#xff0c;是否有以下情况&#xff1a; &#xff08;如果有1的周围都是空&#xff0c;则这个位置用不腐烂&#xff0c;…...

【开源】基于Vue和SpringBoot的康复中心管理系统

项目编号&#xff1a; S 056 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S056&#xff0c;文末获取源码。} 项目编号&#xff1a;S056&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员…...

【音视频基础】AVI文件格式

AVI文件采用的是RIFF文件结构方式。波形音频wave&#xff0c;MIDI和数字视频AVI都采用这种格式存储。 AVI文件的整体结构如下图所示 构造RIFF文件的基本单元叫做数据块&#xff08;Chunk&#xff09;&#xff0c;每个数据块包含3个部分 4字节的数据块标记&#xff08;或者叫…...

图书馆整理I(从尾到头打印列表),剑指offer,力扣

目录 题目地址&#xff1a; 我们直接看题解吧&#xff1a; 解题方法&#xff1a; 难度分析&#xff1a; 审题目事例提示&#xff1a; 解题思路(辅助栈)&#xff1a; 代码&#xff08;递归&#xff09;&#xff1a; 代码&#xff08;列表插入&#xff09;&#xff1a; 相似题目对…...

C++编写的多线程自动爬虫程序

目录 引言 一、程序的设计 二、程序的实现 三、程序的测试 四、优化与改进 五、代码示例 总结 引言 随着互联网的快速发展&#xff0c;网络爬虫程序已经成为数据采集、信息处理的重要工具。C作为一种高效的编程语言&#xff0c;具有高效的并发处理能力和丰富的网络编程…...

SMB信息泄露的利用

一、背景 今天分享SMB信息泄露&#xff0c;SMB&#xff08;Server Message Block&#xff09;网络通信协议&#xff0c;早些时候被用于Web链接和客户端与服务器之间的信息通信&#xff0c;现在大部分Web页面使用HTTP协议&#xff0c;在web领域应用较少。另一方面SMB协议还是被…...

QT自定义信号,信号emit,信号参数注册

qt如何自定义信号 使用signals声明返回值是void在需要发送信号的地方使用 emit 信号名字(参数)进行发送 在需要链接的地方使用connect进行链接 ct进行链接...

06.webpack性能优化--构建速度

优化babel-loaderhappyPackIgnorePluginparalleUglifyPluginnoParse自动刷新 1 happypack多进程打包 js单线程&#xff0c;开启多进程打包提高构建速度&#xff08;特别是多核CPU&#xff09; const HappyPack require(happypack)module.exports smart(webpackCommonConf,…...

11-15 周三 softmax 回归学习

11-15 周三 softmax 回归学习 时间版本修改人描述2023年11月15日11:17:27V0.1宋全恒新建文档 简介 softmax分享可以参考什么是softmax 回归估计一个连续值&#xff0c;分类预测一个离散类别。 恶意软件的判断 回归和分类 分类可以认为从回归的单输出变成多输出 B站学习 softm…...

React新手必懂的知识点

react思想&#xff1a;组件化开发 React 的核心概念是组件化开发&#xff0c;将用户界面拆分成独立的可复用组件。学习如何创建和使用 React 组件&#xff0c;以及组件之间的数据传递和通信是非常重要的。 React的思想就是拆分组件与使用组件。 import React from react;// 定…...

es为什么这么快

es为什么这么快的方式 es的基于Lucene开源搜索引擎&#xff0c;负责文件存储和搜索&#xff0c;支持http请求&#xff0c;以json形式展示 这样介绍你有可能有点迷糊我们详细解释 es 使用的倒排索引的方式&#xff0c;进行数据存储方式&#xff0c;给每一个字段创建索引&…...

Pandas分组聚合_Python数据分析与可视化

Pandas分组聚合 分组单列和多列分组Series 系列分组通过数据类型或者字典分组获取单个分组对分组进行迭代 聚合应用单个聚合函数应用多个聚合函数自定义函数传入 agg() 中对不同的列使用不同的聚合函数 分组聚合的流程主要有三步&#xff1a; 分割步骤将 DataFrame 按照指定的…...

VMware17虚拟机Linux安装教程(详解附图,带VMware Workstation 17 Pro安装)

一、安装 VMware 附官方下载链接&#xff08;VM 17 pro&#xff09;&#xff1a;https://download3.vmware.com/software/WKST-1701-WIN/VMware-workstation-full-17.0.1-21139696.exe 打开下载好的VMware Workstation 17 Pro安装包&#xff1b; 点击下一步&#xff1b; 勾选我…...

基于SDN技术构建多平面业务承载网络

随着企业数字化的浪潮席卷各个行业&#xff0c;传统网络架构面临着更为复杂和多样化的挑战。企业正在寻找一种全面适应数字化需求的网络解决方案。随着软件定义网络&#xff08;SDN&#xff09;的发展&#xff0c;“多业务SDN一张网”解决方案为企业提供了一种全新的网络架构&a…...

关于卓越服务的调研报告

NetSuite知识会发起的本次调研从2023年11月2日开始&#xff0c;到11月12日结束。16日已向参与调研的朋友邮件回复&#xff0c;感谢您的付出&#xff01;今朝分享此报告&#xff0c;各位同学参考。 调研问题与反馈总结 问题1&#xff1a;您能想到哪些服务组织能够提供高满意度&…...

ubuntu22.04换源

1、系统信息 lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy2、进入 /etc/apt/ 目录&#xff1a; cd /etc/apt/ 3、备份默认源文件 sudo cp sources.list sources.list_bak 4、编…...

03. Python中的语句

1、前言 在《Python基础数据类型》一文中&#xff0c;我们了解了Python中的基础数据类型&#xff0c;今天我们继续了解下Python中的语句和函数。 2、语句 在Python中常用的语句可以大致分为两类&#xff1a;条件语句、循环语句。 2.1、条件语句 条件语句就是我们编码时常见…...

Linux CentOS7 添加网卡

一台主机中安装多块网卡&#xff0c;有许多优势。可以实现多项功能。 为了学习网卡参数的设置&#xff0c;可以为主机添加多块网卡。与添加磁盘一样&#xff0c;要在VMware中设置。利用图形化方式或命令行查看或设置网卡。本文仅初步讨论添加、查看与删除网卡&#xff0c;有关…...

2311rust,到54版本更新

1.50.0稳定版 常量泛型数组索引 继续向稳定的常量泛型迈进,此版本为[T;N]数组,添加了ops::Index和IndexMut的实现. fn second<C>(container: &C) -> &C::Output whereC: std::ops::Index<usize> ?Sized, {&container[1] } fn main() {let arra…...

【linux】补充:高效处理文本的命令学习(tr、uniq、sort、cut)

目录 一、tr——转换、压缩、删除 1、tr -s “分隔符” &#xff08;指定压缩连续的内容&#xff09; 2、tr -d 想要删除的东西 ​编辑 3、tr -t 内容1 内容2 将内容1全部转换为内容2&#xff08;字符数需要一一对应&#xff09; 二、cut——快速剪裁命令 三、uniq——去…...

Redis篇---第七篇

系列文章目录 文章目录 系列文章目录前言一、是否使用过 Redis Cluster 集群,集群的原理是什么?二、 Redis Cluster 集群方案什么情况下会导致整个集群不可用?三、Redis 集群架构模式有哪几种?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分…...

Shell脚本:Linux Shell脚本学习指南(第一部分Shell基础)一

你好&#xff0c;欢迎来到「Linux Shell脚本」学习专题&#xff0c;你将享受到免费的 Shell 编程资料&#xff0c;以及很棒的浏览体验。 这套 Shell 脚本学习指南针对初学者编写&#xff0c;它通俗易懂&#xff0c;深入浅出&#xff0c;不仅讲解了基本知识&#xff0c;还深入底…...

长短期记忆(LSTM)与RNN的比较:突破性的序列训练技术

长短期记忆&#xff08;Long short-term memory, LSTM&#xff09;是一种特殊的RNN&#xff0c;主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说&#xff0c;就是相比普通的RNN&#xff0c;LSTM能够在更长的序列中有更好的表现。 Why LSTM提出的动机是为了解…...

Swift 如何打造兼容新老系统的字符串分割(split)方法

0. 概览 在 Swift 的开发中&#xff0c;我们经常要与字符串打交道。其中一个常见的操作就是用特定的“分隔符”来分割字符串&#xff0c;这里分隔符可能不仅仅是字符&#xff0c;而是多字符组成的字符串。 从 iOS 16 开始&#xff0c; 新增了对应的方法来专注此事。不过&am…...

JVM面试必备

目录 JVM三大问题 一、JVM内存区域划分 ​编辑 二、JVM类加载机制 双亲委派模型&#xff08;常考) 类加载的格式&#xff0c;类卸载 三、垃圾回收&#xff08;GC) 具体垃圾回收GC步骤 1.判定对象是否为垃圾 方案1:引用计数 方案2&#xff1a;可达性分析 2.释放对象的…...

战神传奇【我本沉默精修版】win服务端+双端+充值后台+架设教程

搭建资源下载:战神传奇【我本沉默精修版】win服务端双端充值后台架设教程-海盗空间...

安卓手机投屏到电视,跨品牌、跨地域同样可以实现!

在手机网页上看到的视频&#xff0c;也可以投屏到电视上看&#xff01; 长时间使用手机&#xff0c;难免脖子会酸。这时候&#xff0c;如果你将手机屏幕投屏到大电视屏幕&#xff0c;可以减缓脖子的压力&#xff0c;而且大屏的视觉体验更爽。 假设你有一台安卓手机&#xff0c;…...

python变量名解析总结

1 python变量名解析总结 点号和无点号变量名&#xff0c;用不同的处理方式。 &#xff08;1&#xff09; 无点号的变量名&#xff0c;比如X&#xff0c;使用的是作用域。 &#xff08;2&#xff09; 有点号的变量名&#xff0c;比如obj.X&#xff0c;使用对象的命名空间。 …...

端口号大揭秘:网络世界的“门牌号”有多牛?

大家好&#xff0c;今天我们来聊一聊网络中的端口号。如果你以为端口号只是冷冰冰的数字&#xff0c;那你就大错特错了。端口号&#xff0c;这些看似枯燥的数字背后&#xff0c;隐藏着一个个生动的故事。 目录 大家好&#xff0c;今天我们来聊一聊网络中的端口号。如果你以为端…...

vue解除数据双向绑定

let obj JSON.parse(JSON.stringify(data));例如&#xff0c;table列表中&#xff0c;点击编辑时&#xff0c;可对val进行如上操作来解除双向绑定...

组件插槽,生命周期,轮播图组件的封装,自定义指令的封装等详解以及axios的卖座案例

3.组件插槽 3-1组件插槽 注意 插槽内容可以访问到父组件的数据作用域,因为插槽内容本身就是在父组件模版中定义的 插槽内容无法访问子组件的数据.vue模版中的表达式只能访问其定义时所处的作用域,这和JavaScript的词法作用域是一致的,换言之: 父组件模版的表达式只能访问父组…...

小美的树上染色

美团2024届秋招笔试第一场编程真题 先提一个小知识&#xff1a;题目中凡是提到树结构都要使用图的存储方式&#xff0c;只有二叉树例外。 分析&#xff1a;在树结构中&#xff0c;孩子和父节点是相邻节点&#xff0c;而父节点可能有多个孩子节点。在染色的过程中&#xff0c;…...

1.rk3588的yolov5运行:pt_onnx_rknn转换及rknn在rk3588系统python运行

自己有点笨&#xff0c;查资料查了一周才完美的实现了yolov5在rk3588环境下的运行&#xff0c;在这里写具体步骤希望大家少走弯路。具体步骤如下&#xff1a; 一、yolov5的原代码下载及pt文件转换为onnx文件 1.yolov5的原代码下载及环境搭建 在这里一定要下载正确版本的源代码…...

适用于全部安卓手机的 5 大免费 Android 数据恢复

您是否面临这样一种情况&#xff0c;即在Android设备上丢失了一些重要文件&#xff0c;但不知道应该选择哪种Android数据恢复来取回它们&#xff1f; 如果您以前从未备份过Android数据&#xff0c;则很难解决问题。 本文将介绍排名前5位的免费Android数据恢复软件。 您可以获…...

【案例分享】BenchmarkSQL 5.0 压测 openGauss 5.0.0

一、前言 本次BenchmarkSQL 压测openGauss仅作为学习使用压测工具测试tpcc为目的&#xff0c;并不代表数据库性能如本次压测所得数据。实际生产性能压测&#xff0c;还需结合服务器软硬件配置、数据库性能参数调优、BenchmarkSQL 配置文件参数相结合&#xff0c;是一个复杂的过…...

Linux之 4 种休眠模式

目录 1. Linux之 4 种休眠模式 1. Linux之 4 种休眠模式 # echo standby >/sys/power/state //CPU和RAM在运行 # echo mem > /sys/power/state //挂起到内存(待机),关闭硬 盘、外设等设备 # echo disk > /sys/power/state //挂起到硬盘(休眠),关闭硬盘、外设等设备&…...

homeassiant主题

下载主题 https://github.com/maartenpaauw/home-assistant-community-themes.git 使用file editor到homeassiant路径下&#xff0c;新建文件夹themes文件夹&#xff0c;用terminal新建也可以。 使用file editor上传文件 使用Terminal解压 mkdir themes unzip home-assistan…...

《2020年最新面经》—字节跳动Java社招面试题

文章目录 前言&#xff1a;一面&#xff1a;01、Java基础知识答疑&#xff0c;简单概述一下&#xff1f;02、倒排索引了解吗&#xff1f;使用Java语言怎么实现倒排&#xff1f;03、详细讲解一下redis里面的哈希表&#xff0c;常用的Redis哈希表命名有哪些&#xff0c;举例说明其…...

2.3IP详解及配置

2.3IP详解及配置 一、ip地址组成 IP地址由4部分数字组成&#xff0c;每部分数字对应于8位二进制数字&#xff0c;各部分之间用小数点分开 这是点分 2进制 如果换算为10进制我们称为点分10进制. 每个ip地址由两部分组成网络地址(NetID)和主z机地址(HostID).网络地址表示其属于…...

Python程序打包指南:手把手教你一步步完成

最近感兴趣想将开发的项目转成Package&#xff0c;研究了一下相关文章&#xff0c;并且自己跑通了&#xff0c;走了一下弯路&#xff0c;这里记录一下如何打包一个简单的Python项目&#xff0c;展示如何添加必要的文件和结构来创建包&#xff0c;如何构建包&#xff0c;以及如何…...

Linux yum 使用时提示 获取 GPG 密钥失败Couldn‘t open file RPM-GPG-KEY-EPEL-7

资料 错误提示&#xff1a; no crontab for root - using an empty one 888 原因剖析&#xff1a; 第一次使用crontab -e 命令时会让我们选择编辑器&#xff0c;很多人会不小心选择默认的nano&#xff08;不好用&#xff09;&#xff0c;或则提示no crontab for root - usin…...

OpenGL_Learn13(材质)

1. 材质 cube.vs #version 330 core layout (location 0) in vec3 aPos; layout (location 0 ) in vec3 aNormal;out vec3 FragPos; out vec3 Normal;uniform mat4 model; uniform mat4 view; uniform mat4 projection;void main() {FragPosvec3(model*vec4(aPos,1.0));Norma…...

buildadmin+tp8表格操作(1)----表头上方添加按钮和自定义按钮

buildAdmin 的表头上添加一些按钮&#xff0c;并实现功能 添加按钮 <template><!-- buttons 属性定义了 TableHeader 本身支持的顶部按钮&#xff0c;仅需传递按钮名即可 --><!-- 这里的框架自带的 顶部按钮 分别有 刷新 &#xff0c; 添加&#xff0c; 编辑&…...

MySQL 定时计划任务 事件的使用

目录 查看事件是否开启 开启事件 1&#xff09;通过设置全局参数修改 2&#xff09;更改配置文件 MySQL如何创建并执行事件&#xff1f; 例 1 MySQL查看事件状态信息 MySQL修改和删除事件 例 1 例 2 删除事件 例 3 在数据库管理中&#xff0c;经常要周期性的执行某…...

C++构造函数 拷贝构造函数 括号法显示法隐式转换法实现类

一.无参构造 & 有参构造 & 拷贝构造函数 拷贝的是自己所属的类&#xff0c;也就是克隆自己。 所以传参要穿自己的类名。 克隆归克隆&#xff0c;但是不能把本身给改了&#xff0c;所以参数前要加const。class Person { public:int age;public:Person(){cout<<&q…...

FreeRTOS中的内存分配策略

FreeRTOS为内存管理提供了几种不同的策略&#xff0c;分别由heap_1.c至heap_5.c实现。以下是每种策略&#xff1a; heap_1.c: 最简单的策略。只允许一次性的内存分配。不允许内存释放。对于只分配内存但不释放的系统特别有用&#xff0c;如仅在启动时分配任务和队列的系统。内存…...

HP惠普光影精灵7笔记本Victus by HP 16.1英寸游戏本16-d0000原装出厂Windows11.21H2预装OEM系统

下载链接&#xff1a;https://pan.baidu.com/s/1LGNeQR1AF1XBJb5kfZca5w?pwdhwk6 提取码&#xff1a;hwk6 可适用的型号&#xff1a; 16-d0111tx&#xff0c;16-d0112tx&#xff0c;16-d0125tx&#xff0c;16-d0127tx&#xff0c;16-d0128tx&#xff0c;16-d0129tx&#…...

组合模式 rust和java的实现

文章目录 组合模式介绍实现javarsut 组合模式 组合模式&#xff08;Composite Pattern&#xff09;&#xff0c;又叫部分整体模式&#xff0c;是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象&#xff0c;用来表示部分以及整体层次。这种类型的设计…...

大数据基础设施搭建 - MySQL

文章目录 一、检查是否安装过MySQL二、上传安装包三、安装MySQL3.1 安装mysql依赖3.2 安装mysql-client3.3 安装mysql-server 四、启动MySQL五、配置MySQL5.1 修改密码&#xff08;1&#xff09;查看密码&#xff08;2&#xff09;登陆&#xff08;3&#xff09;设置复杂密码&a…...

二叉树递归遍历

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 二叉树遍历算法 指遍历一遍二叉树就能得到答案 什么是二叉树遍历 二叉树遍历 前中后序遍历 递归遍历 3种时间节点 递归遍历会依次遍历到每个节点。 而前中后序则是在递归遍历的基础上选择操作发生的时间。 递归遍历 …...