【递归、搜索与回溯】floodfill算法二
floodfill算法二
- 1.被围绕的区域
- 2.太平洋大西洋水流问题
- 3.扫雷游戏
- 4.衣橱整理
点赞👍👍收藏🌟🌟关注💖💖
你的支持是对我最大的鼓励,我们一起努力吧!😃😃
1.被围绕的区域
题目链接:130. 被围绕的区域
题目分析:
把被X上下左右围绕的O区域变成X,注意这个O不能处于边界,因为处于边界的O并不会被X上下左右围绕。
算法原理:
对于这个例子我们仅需把画绿线的区域修改成X就行了。
解法一:直接去做(有困难)
我们刚开始拿到这道题,直接解决这个问题,还是以前一样一行一行扫描遇到O了,就深度优先遍历一次把与它相连的连通块全部都给成X。但是你碰到紫色的O,你深度优先遍历把这些区域都改成X,但是这些区域是不能修改的!
此时可以这样搞,碰到绿色区域深度优先遍历可以改,当碰到紫色区域的O也就说这个连通块处于边界的情况,递归碰到边界是不仅不能改还需要考虑回溯把改的地方给还原回来。但是你会发现代码非常难些。因为这两个区域的深搜是不一样的,要写两种dfs。更致命的问题是我们是在搜索的过程中才发现一个位置是非法的。所以说并不知道这两个区域到底用那个dfs!
所以这样搞挺困难的!
解法二:正难则反
如果直接去搞比较难,我可以反着来!
这个问题与边界相连的O区域比较难搞,此时就能先把处于边界区域的O先处理一下。那剩下的O就自然在内部了。
那边界怎么处理呢?我们只要扫描边界就可以了,当碰到O就从这个位置来一次dfs,可以把与这个位置相连的O位置标记一下。标记有两种策略,一:搞一个vis数组。二:修改原始值 把边界这些 O 修改成 . 。然后把边界情况处理完之后,在扫描整个矩阵当碰到 . 就把它还原成一个 O,当碰到 O 修改成 X。这样就完美的解决这个问题了。
class Solution {int dx[4]={0,0,1,-1};int dy[4]={1,-1,0,0};int m,n;
public:void solve(vector<vector<char>>& board) {m=board.size(),n=board[0].size();// 1.把边界的 O 相连的连通块,全部修改成 .for(int i = 0; i < m; ++i)for (int j = 0; j < n; ++j)if(board[i][j] == 'O')if(i == 0 || i == m-1 || j == 0 || j == n-1) dfs(board,i,j);// 2.还原for(int i = 0; i < m; ++i)for(int j = 0; j < n; ++j){if(board[i][j] == 'O') board[i][j]='X';else if(board[i][j] == '.') board[i][j]='O';}}void dfs(vector<vector<char>>& board,int i,int j){board[i][j]='.';for(int k = 0; k < 4; ++k){int x = i + dx[k], y = j + dy[k];if(x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'O'){dfs(board, x, y);}}}
};
2.太平洋大西洋水流问题
题目链接:417. 太平洋大西洋水流问题
题目分析:
题目描述很难懂,这里我们简单说一下。有一个mxn的矩阵,这个矩阵相当于一个岛屿。这个岛屿被两个洋包围,其中上和左被太平洋包围。下和右被大西洋包围。这个岛屿被分成一块一块的。其中数字代表这一块的高度。此时如果有水的话,水是可以从较高的地方流向较低的地方,还可以流向和在我周围并且和我相等高度的地方。注意只能上下左右流动。然后题目要求在所有的小格子里能否存在一个位置,这个位置的水既可以流向太平洋又可以流向大西洋。如果可以就把这个位置坐标存下来,最后返回。最终找到的就是这个岛屿中所有即可流向太平洋又可以流向大西洋的小格子。
算法原理:
把题目搞懂了,你可能里面会想到把所有小格子枚举一遍。遇到一个点就去看这个位置能不能去大西洋和太平洋。如果可以就加入到最终结果。然后在去下一个位置。
解法一:直接判断某一个位置能否去大西洋和太平洋
但是这种直接判断的方式会存在非常多的重复路径,一旦矩阵规模很大这样搞可能会超时。因此我们不能直接解决这个问题。拿到一个点就暴力去判断能不能去大西洋和太平洋。我们要换一种方法来解决这个问题。
解法二:正难则反
我们要找的是某个位置能不能流向太平洋和大西洋,那我能不能反过来过看大西洋和太平洋能否流到相同的位置!比如说先看太平洋 上左两条边界开始 水能流向那些位置。如果我反向能从太平洋流向某个位置,那这个位置正向也一定能从这个位置流向太平洋。正向是从某个位置流向小于或者等于我的位置。那反向就是流向大于或者等于我的位置。
比如从1开始,一次就可以找到有这么多位置可以从1流向太平洋。然后在上面这一行下一个位置,但是因为1已经把这些位置标记了,所以不会在进去了。这一行都直接结束了。 然后考虑左边这一列,没有被标记的地方我可以去。被标记的地方我都不用去了。因为遍历过的地方只会遍历一次,所以时间复杂度会降的非常多。
我们反着从最上面一行最左边一列找的这些点都可以流向太平洋。
同理从最下面一行和最右边一列找大西洋能流向那些位置。然后你就会发现有一些重复标记的位置。而这些重复标记的位置就是既能流向太平洋又能流向大西洋。
class Solution {int dx[4]={0,0,1,-1};int dy[4]={1,-1,0,0};int m,n;
public:vector<vector<int>> pacificAtlantic(vector<vector<int>>& heights) {m=heights.size(),n=heights[0].size();vector<vector<bool>> pac(m,vector<bool>(n));vector<vector<bool>> atl(m,vector<bool>(n));// 1. Pacific Ocean for(int j = 0; j < n; ++j)dfs(heights,0,j,pac);for(int i = 0; i < m; ++i)dfs(heights,i,0,pac);// 2. Atlantic Oceanfor(int j = 0; j < n; ++j)dfs(heights,m-1,j,atl);for(int i = 0; i < m; ++i)dfs(heights,i,n-1,atl);vector<vector<int>> ret;// 3. 找重叠for(int i = 0; i < m; ++i){for(int j = 0; j < n; ++j){if(pac[i][j] && atl[i][j])ret.push_back({i,j});}}return ret;}void dfs(vector<vector<int>>& h, int i, int j,vector<vector<bool>>& vis){vis[i][j]=true;for(int k = 0; k < 4; ++k){int x = i + dx[k], y = j + dy[k];if(x >= 0 && x < m && y >= 0 && y < n && !vis[x][y] && h[x][y] >= h[i][j]){dfs(h, x, y,vis);}}}};
3.扫雷游戏
题目链接:529. 扫雷游戏
题目分析:
这题说的很多,其实就是给一个mxn的棋盘,再给一个棋盘坐标,点击这个坐标,把修改后的棋盘返回。
我们要注意一下规则:
- ‘M’ 代表一个 未挖出的 地雷,
-
‘E’ 代表一个 未挖出的 空方块,
-
‘B’ 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的 已挖出的 空白方块,
前面我们都只研究上下左右,这里还要考虑斜对角线4个位置。也就是说如果当前被挖的空格周围没有地理,就把它标记成B。
- 数字(‘1’ 到 ‘8’)表示有多少地雷与这块 已挖出的 方块相邻,
数字表示这个被挖的格子周围有多少个地雷
- ‘X’ 则表示一个 已挖出的 地雷。
根据以下规则,返回相应位置被点击后对应的盘面:
- 如果一个地雷(‘M’)被挖出,游戏就结束了- 把它改为 ‘X’ 。
也就是说如果刚开始给你的这个位置就是雷的话,把这个位置改成‘X’,直接结束即可!
- 如果一个 没有相邻地雷 的空方块(‘E’)被挖出,修改它为(‘B’),并且所有和其相邻的 未挖出 方块都应该被递归地揭露。
如果当前被挖的位置周围没有地雷,把它改成’B‘,然后递归的往周围走。
- 如果一个 至少与一个地雷相邻 的空方块(‘E’)被挖出,修改它为数字(‘1’ 到 ‘8’ ),表示相邻地雷的数量。
如果当前被挖的位置周围有地雷,把它修改成周围的地雷数,然后就不要递归下去了。直接返回。
- 如果在此次点击中,若无更多方块可被揭露,则返回盘面。
算法原理:
其实这就是一个模拟,已经告诉怎么去操作了。
当点击这个位置之后,我们要先统计一下点击的这个位置周围有没有地雷。周围没有地雷,就把这个位置改成’B‘,然后递归的把周围所有位置都找一遍。如果周围有地雷的话,就把这个位置改成地雷数,然后就不要从这个位置在递归下去了,返回即可。同理递归进去也是如上面一样先统计周围有没有地雷。。。。
不过这里有个细节问题,我们之前是沿着一个位置上下左右找4个位置。但是这个位置要找一圈8个位置。我们还是和之前一样,我们直接把向量数组扩展一下就可以了。可以写两个-1,1之后然后给它们分别匹配-1,1。
class Solution
{int dx[8]={0, 0, 1, -1, -1, -1, 1, 1};int dy[8]={1, -1, 0, 0, -1, 1, -1, 1};int m,n;
public:vector<vector<char>> updateBoard(vector<vector<char>>& board, vector<int>& click) {int i=click[0],j=click[1];if(board[i][j] == 'M') //直接点到地雷{board[i][j]='X';return board;}m=board.size(),n=board[0].size();dfs(board,i,j);return board;}void dfs(vector<vector<char>>& board, int i, int j){int cnt=0;for(int k = 0; k < 8; ++k){int x = i + dx[k], y = j + dy[k];if(x >= 0 && x < m && y >= 0 && y < n){if(board[x][y] == 'M') ++cnt;}}if(cnt) //周围有地雷{board[i][j]='0'+cnt;return;}else //周围没地理{board[i][j]='B';for(int k = 0; k < 8; ++k){int x = i + dx[k], y = j + dy[k];if(x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'E'){dfs(board, x, y);}}}}
};
4.衣橱整理
题目链接: LCR 130. 衣橱整理
题目分析:
有一个mxn的格子,从下标0,0出发,注意可以整理的格子横坐标和纵坐标位数和要小于等于cnt。(当 cnt 为 19时,能够进入方格 [35, 37] ,因为 3+5+3+7=18。但它不能进入方格 [35, 38],因为 3+5+3+8=19)统计一下总共可以整理多少个格子。
算法原理:
从开始位置来一次深度优先遍历,把能进入格子的个数统计一下就行。其实就是一步floodfill算法也就是一次深度优先遍历,把相同性质的格子个数找出来,数位之和小于等于cnt。
class Solution {bool vis[101][101];int dx[2]={0,1};int dy[2]={1,0};int m,n,cnt;int count=0;
public:int wardrobeFinishing(int _m, int _n, int _cnt) {m=_m,n=_n,cnt=_cnt;dfs(0,0);return count;}void dfs(int i, int j){++count;vis[i][j]=true;for(int k = 0; k < 2; ++k){int x = i + dx[k], y = j + dy[k];if(x >= 0 && x < m && y >= 0 && y < n && !vis[x][y] && check(x, y)){dfs(x,y);}}}bool check(int i, int j){int sum=0;while(i){sum += i % 10;i /= 10;}while(j){sum += j %10;j /= 10;}return sum <= cnt;}
};
相关文章:
![](https://img-blog.csdnimg.cn/direct/f14731c6ade14f9c93012d0c26345d99.png)
【递归、搜索与回溯】floodfill算法二
floodfill算法二 1.被围绕的区域2.太平洋大西洋水流问题3.扫雷游戏4.衣橱整理 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.被围绕的区域…...
![](https://img-blog.csdnimg.cn/img_convert/9d39c1a96b4d8d22e99f08b4d6ea8d60.png)
Dataease安装,配置Jenkins自动部署
Dataease安装,配置Jenkins自动部署 一.安装Dataease 安装前准备:1.Ubuntu20.04 LTS国内源安装指定版本Docker 2.docker-compose安装 下载离线安装的安装包,下载地址:https://community.fit2cloud.com/#/download/dataease/v1-…...
![](https://img-blog.csdnimg.cn/direct/72d02e1aaa9444dc8949637046ccbb87.png)
关于IDEA启动报错 【JAVA_HOME does not point to a valid JM installation】
希望文章能给到你启发和灵感~ 感谢支持和关注~ 阅读指南 一、基础环境说明1.1 硬件环境1.2 软件环境 二、起因 一、基础环境说明 考虑环境因素不同,大家适当的对比自己的软硬件环境情况分析~ 1.1 硬件环境 MacOS Monterey 版本 1…...
![](https://img-blog.csdnimg.cn/direct/4c465fc5818d456ead1a19d37ff9b5e0.png#pic_center)
设置小蓝熊的CPU亲和性、CPU优先级再设置法环的CPU亲和性
# 适用于Windows系统 # 时间 : 2024-06-28 # 作者 : 三巧(https://blog.csdn.net/qq_39124701) # 文件名 : 设置小蓝熊的CPU亲和性、CPU优先级再设置法环的CPU亲和性.ps1 # 使用方法: 打开记事本,将所有代码复制到记事本中,保存文件时候修改文件后…...
![](https://www.ngui.cc/images/no-images.jpg)
Oracle中的序列(Sequence)是一种数据库对象
Oracle中的序列(Sequence)是一种数据库对象,用于生成数字序列,通常用于为主键列生成唯一、连续的数值。以下是一些使用序列的案例: 1. **为主键生成唯一值**: 在Oracle中,序列最常用的场景是…...
![](https://img-blog.csdnimg.cn/img_convert/dcf9cb6779b7122f78ddd2c469cf9239.webp?x-oss-process=image/format,png)
热点观察 | 《姜饼人王国》新作来袭、《Monopoly GO!》荣登5月全球畅销榜榜首
本周出海热点: 1. 中国品牌借欧洲杯打响知名度 2. 米哈游玩家切割二次元 3. 6月27日,Steam游戏《六月衷曲》上线TapTap 4. 《Monopoly GO!》荣登5月全球畅销榜榜首 5. 《地下城与勇士》拿下本周亚洲T1市场畅销榜冠军 6. 《姜饼人王国》新作强势登顶…...
![](https://img-blog.csdnimg.cn/direct/86b3252659d14bf5a5593ba281ad4e3c.png)
智能网络构建:探索大模型在网络领域的应用
网络领域以其高度复杂性和快速迭代为特点,完成从网络设计、配置、诊断到安全的网络任务需要广泛的专业知识。这些任务的固有复杂性,加上网络技术和协议不断变化的格局,为传统基于机器学习的方法带来了显著的障碍。这些方法在泛化和自动化网络…...
![](https://www.ngui.cc/images/no-images.jpg)
C++编程逻辑讲解step by step:定义一个Person类,它的每个对象表示一个人。
题目 定义一个Person类,它的每个对象表示一个人。数据成员必须包含姓名、出生年份、死亡年份,一个构造函数,一析构函数,读取数据的成员函数,一个print()成员函数显示所有数据。 #include <iostream> using namespace std;…...
![](https://img-blog.csdnimg.cn/img_convert/c96206d33c97720cf0cf2e13f048280e.jpeg)
DBdoctor产品介绍
基本信息 DBdoctor是一款企业级数据库监控、巡检、性能诊断、SQL审核与优化平台,致力于解决一切数据库性能问题。采用eBPF技术可对数据库做细粒度的扫描,帮助您一分钟内找到数据库性能问题,实现性能诊断百倍提效。针对数据库性能诊断门槛高、…...
![](https://img-blog.csdnimg.cn/direct/fc10cf34f41d4504a45c250f389cc6a1.png)
一加Ace3 刷机救砖简化说明
注意:工具使用英文目录,支持救砖和降级。PJE110国行版,CPH2609国际版。目前国行版不能完美转换国际版,每次升级都需要刷oplusstanvbk,不建议使用。跨国转换或ROOT一定先解锁Bootloader,可以使用“一加全能工…...
![](https://img-blog.csdnimg.cn/direct/65c8856f29ef480c9df12bae63c72221.png)
【服务器05】之【登录/注册账号成功转至游戏场景】
Unity登录注册数据库 打开【服务器01】的文章项目 导入新UI系统 点击2D 双击输入栏位置 修改输入框尺寸及位置 放大字体 修改默认输入文字 发现中文字变成了口口口口 原因是新UI系统不支持中文,解决这个问题需要更换字体 并且修改输入时字体大小 我们取电脑中找Fon…...
![](https://img-blog.csdnimg.cn/img_convert/f53c0fd2ebd46b34da97920dc1bca8c4.png)
平价蓝牙耳机推荐性价比高,性价比高的蓝牙耳机学生党推荐
市场上的蓝牙耳机价格从几十元到几百甚至上千不等,性能与价格也呈现多样化,对于学生党来说,一个理想的选择是那些性价比高的平价蓝牙耳机,它们在不牺牲必要功能的同时,提供了可接受的音质和足够的便利性,接…...
![](https://img-blog.csdnimg.cn/img_convert/c50a636333d5533ec80d57ba1425755f.jpeg)
【华为战报】5月、6月HCIP考试战报!
华为认证:HCIA-HCIP-HCIE 点击查看: 【华为战报】4月 HCIP考试战报! 【华为战报】2月、3月HCIP考试战报! 【华为战报】11月份HCIP考试战报! 【HCIE喜报】HCIE备考2个月丝滑通关,考试心得分享ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
OBD诊断
文章目录 OBD 参考标准OBD 服务OBD服务中的DTCOBD服务中0x03和0x07的区别参考 OBD 参考标准 OBD的标准: ISO 15031 Road Vehicles-Communication between vehicle and external equipment for emission-related diagnostics OBD 服务 序号ID服务说明服务详解10x0…...
![](https://img-blog.csdnimg.cn/direct/e678d5c05144448f9c9233bf292616a1.gif)
Elasticsearch 聚合查询
Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…...
![](https://www.ngui.cc/images/no-images.jpg)
adb remount fails - mount: ‘system‘ not in /proc/mounts 解决办法
mount -o rw,remount /挂载根 mount -o ro,remount /将状态重置为“ro” 以下是我个人的一些话 我热衷于在网络上分享我遇到的问题和解决方案。如果你有任何问题或需要帮助,欢迎留言交流,在共同学习的道路上一起进步。我很高兴结识那些在学习上积极进取…...
![](https://img-blog.csdnimg.cn/img_convert/68eae5855b973f04b2ca97846c92eb45.png)
百元蓝牙耳机推荐2024哪个好?蓝牙耳机性价比之王推荐
现在的百元价位的蓝牙耳机成为了许多消费者入门级的选择,它不仅需要满足基础的通话需求,更要在音质、舒适度、续航能力等多方面达到一定的标准,随着技术的发展和市场的竞争激烈,各大品牌在这一价格区间推出了极具竞争力的产品&…...
![](https://img-blog.csdnimg.cn/img_convert/4d5f13ef5ed83071c983dfd83319ce9b.png)
Spring项目报错解读与全部报错详解
你好,我是Qiuner. 为帮助别人少走弯路和记录自己编程学习过程而写博客 这是我的 github https://github.com/Qiuner ⭐️ gitee https://gitee.com/Qiuner 🌹 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 😄 (^ ~ ^) 想看更多 那就点个关注吧 我…...
![](https://www.ngui.cc/images/no-images.jpg)
10秒教会你mysql的连接
连接MySQL数据库通常可以通过多种方法实现,以下是几种常见的方法,我将按照您的要求以清晰、分点的方式归纳说明: 1. 使用MySQL命令行客户端 打开终端或命令提示符:首先,打开您的计算机上的终端或命令提示符窗口。输入…...
![](https://i-blog.csdnimg.cn/direct/157fd93c267a42c699c78b4450b2f638.png)
万物皆可爬——亮数据代理IP+Python爬虫批量下载百度图片助力AI训练
💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【导航大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…...
![](https://img-blog.csdnimg.cn/direct/49dd8243b06e49b5a23ea6f24a1d493a.png)
OpenCv形态学(一)
目录 形态学转换 结构元素 腐蚀 膨胀 开运算 闭运算 形态学梯度 顶帽 黑帽 图像轮廓 查找轮廓 绘制轮廓 形态学转换 形态变换是一些基于图像形状的简单操作。通常在二值图像上执行。它需要两个输入,一个是我们的原始图像,第二个是决定操作性…...
![](https://www.ngui.cc/images/no-images.jpg)
CSS基础汇总
CSS 1. 选择器 标签选择器 通过标签名找标签(把指定的样式应用到某一个、组、类标签上) id选择器 通过id属性值找标签,关键符号#id值{样式} 复合选择器 1、并列选择器:关键符号,用法:选择器1,…...
![](https://www.ngui.cc/images/no-images.jpg)
cocos creator让所有button点击时播放音效
原理: 利用prototype属性,通过重写 cc.Button.prototype._onTouchEnded 方法,以便在按钮被点击时播放音频。通过重写其 _onTouchEnded 方法,可以添加自定义行为,如播放音频。 概念解释: prototype&#…...
![](https://i-blog.csdnimg.cn/direct/f65385a03b184c2897165f166b42ccec.png)
mybatisplus自带的雪花算法(IdType.ASSIGN_ID)无法自动生成弊端缺点,以及改进方法
前言 今日在使用mybatisplus的雪花算法自动给id赋值时发现怎么都是null的情况,这尼玛测了半天,终于发现巨坑,废话不多说,直接上干货 IService.save 只有调用IService中的save方法才能正常生成id,像IService.saveBatc…...
![](https://img-blog.csdnimg.cn/direct/afa1f0185e324d7c91fd553cedbb95d2.png)
单位转换:将kb转换为 MB ,GB等形式
写法一: function formatSizeUnits(kb) {let units [KB, MB, GB, TB, PB,EB,ZB,YB];let unitIndex 0;while (kb > 1024 && unitIndex < units.length - 1) {kb / 1024;unitIndex;}return ${kb.toFixed(2)} ${units[unitIndex]}; } console.log(for…...
![](https://img-blog.csdnimg.cn/img_convert/fb143cbadac49abc5ab38d6632ce02a3.webp?x-oss-process=image/format,png)
优思学院|「按计划推动型」与「需求拉动型」的生产模式
针对生产架构做对比分类的用语,主要有按计划推进型与需求拉动型。 「按计划推动型」与「需求拉动型」两者乃是生产架构上常使用、成对比的两个用语。不过,有时不只用来指单纯的生产现场架构,也有人把它应用在更广泛的生产架构设计上。 按计划…...
![](https://img-blog.csdnimg.cn/direct/8ad94351467644b3a3d2d67977b873fc.png)
解释什么是lambda函数?它有什么好处?
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
![](https://i-blog.csdnimg.cn/direct/6f85ffe41c2d48b180bf4cd8b3ef9564.png)
码农:如何快速融入团队
问题: 码农如何快速融入团队? 记住一个标准:能干事、能抗事。 总结一个字: 靠谱。 适用范围:新手码农、老司机码农、测试、DBA、运维、产品经理、项目经理、架构师、技术专家、。。。。适用于任何行业的打工者。 下面要…...
![](https://i-blog.csdnimg.cn/direct/838dec6a99aa42fe9f474a3db323f460.png)
Android 通知组
一. 通知组简介 从 Android 7.0(API 级别 24)开始,您可以在一个组中显示相关通知。如下所示: 图 1. 收起(顶部)和展开(底部)的通知组。 注意 :如果应用发出 4 条或更多条通知且未…...
![](https://img-blog.csdnimg.cn/direct/feb9a66998344833972ea678e5538ded.png)
【机器学习】ChatTTS:开源文本转语音(text-to-speech)大模型天花板
目录 一、引言 二、TTS(text-to-speech)模型原理 2.1 VITS 模型架构 2.2 VITS 模型训练 2.3 VITS 模型推理 三、ChatTTS 模型实战 3.1 ChatTTS 简介 3.2 ChatTTS 亮点 3.3 ChatTTS 数据集 3.4 ChatTTS 部署 3.4.1 创建conda环境 3.4.2 拉取源…...
![](https://img-blog.csdnimg.cn/direct/4ff69535f9974d8297293337f490d16d.png)
宏集物联网工控屏通过 S7 ETH 协议采集西门子 1200 PLC 数据
前言 为了实现和西门子PLC的数据交互,宏集物联网HMI集成了S7 PPI、S7 MPI、S7 Optimized、S7 ETH等多个驱动来适配西门子200、300、400、1200、1500、LOGO等系列PLC。 本文主要介绍宏集物联网HMI如何通过S7 ETH协议采集西门子1200 PLC的数据,文中详细介…...
![](https://img-blog.csdnimg.cn/direct/b8dc3aaaa6e04bf3bb815d57c302a749.png)
C语言学习记录(十一)——指针基本知识及运算
文章目录 前言1. 指针的概念2.指针变量的说明3. 指针的含义4. 指针运算①指针加减:②指针的关系运算符 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 1. 指针的概念 在C语言中&…...
![](https://www.ngui.cc/images/no-images.jpg)
Oracle中 ROW_NUMBER()的语法及在对应不同需求下应如何使用
Oracle数据库中的ROW_NUMBER()函数是一个窗口函数,它为查询结果集中的每一行分配一个唯一的序号。这个函数在数据分析、分页查询、数据去重和排名问题等方面非常有用。ROW_NUMBER()函数的语法如下: ROW_NUMBER() OVER ( [ PARTITION BY column ] ORDER …...
![](https://img-blog.csdnimg.cn/img_convert/da772d4410332f7c484d4aeb50c0f3ec.png)
德邦快递大件可以寄2米长物品吗?大件跨省行李用哪个快递便宜?
搬家或寄送特殊尺寸物品时,快递的选择尤为关键。特别是2米长的大件物品,是否能够承运?哪家快递在跨省大件行李方面更经济?今天,就为你解答这些疑问。 1、祺祺寄快递小程序: “祺祺寄快递”小程序ÿ…...
![](https://img-blog.csdnimg.cn/direct/bc19ba5b23394ab6bd7b62e8fb7718ba.png)
C# 在WPF .net8.0框架中使用FontAwesome 6和IconFont图标字体
文章目录 一、在WPF中使用FontAwesome 6图标字体1.1 下载FontAwesome1.2 在WPF中配置引用1.2.1 引用FontAwesome字体文件1.2.2 将字体文件已资源的形式生成 1.3 在项目中应用1.3.1 使用方式一:局部引用1.3.2 使用方式二:单个文件中全局引用1.3.3 使用方式…...
![](https://img-blog.csdnimg.cn/direct/b6c3b10439e841f89e228a323fc010cc.png)
万能自定义预约小程序源码系统 适合任何行业在线预约报名 前后端分离 带完整的安装代码包以及搭建教程
系统概述 在当今数字化时代,线上预约已成为各行各业不可或缺的一部分。为满足广大企业和个人对在线预约系统的需求,我们特别推出了这款“万能自定义预约小程序源码系统”。该系统以其高度的灵活性和可扩展性,为各行各业提供了完美的在线预约…...
![](https://www.ngui.cc/images/no-images.jpg)
【MySQL备份】mysqldump篇
目录 1.简介 2.基本用途 3.命令格式 3.1常用选项 3.2常用命令 4.备份脚本 5.定时执行备份脚本 1.简介 mysqldump 是 MySQL 数据库管理系统的命令行实用程序,用于创建数据库的逻辑备份。它能够导出数据库的结构(如表结构、视图、触发器等…...
![](https://img-blog.csdnimg.cn/direct/2849e965b40f4f959502af5cfb9934cb.png)
控制台扫雷(C语言实现)
目录 博文目的实现思路项目创建文件解释 具体实现判断玩家进行游戏还是退出扫雷棋盘的确定地图初始化埋雷玩家扫雷的实现雷判断函数 源码game.cgame.h扫雷.c 博文目的 相信不少人都学习了c语言的函数,循环,分支那我们就可以写一个控制台的扫雷小游戏来检…...
![](https://img-blog.csdnimg.cn/img_convert/5da347a73a7a3a0e96e960fe03f691c0.jpeg)
操作系统期末复习 | 批处理程序 | PV实现同步互斥 | 调度算法 | 页面置换算法 | 磁盘调度算法
操作系统引论 批处理程序 单道批处理:引入脱机输入/输出技术,并由监督程序负责控制作业的输入、输出。主要优点是缓解了一定程度的人机速度矛盾,资源利用率有所提升。主要缺点是内存中仅能有一道程序运行,只有该程序运行结束之后…...
![](https://www.ngui.cc/images/no-images.jpg)
字符串的六种遍历方式
在 Java 中,有多种遍历字符串的方法。以下是几种常见的遍历字符串的方法,并附有示例代码 1. 使用 for 循环 这是最常见和基础的遍历方法,通过索引访问每个字符。 public class StringTraversal {public static void main(String[] args) {S…...
![](https://www.ngui.cc/images/no-images.jpg)
在码云(Gitee)上建立分支(Branch)的步骤如下:
步骤一:登录码云 首先,打开码云的官方网站(gitee.com),输入用户名和密码登录你的账号。 步骤二:创建仓库 登录后,在页面右上方的搜索框中输入仓库名称,并点击“创建”按钮创建新的仓…...
![](https://img-blog.csdnimg.cn/direct/08078f1925134ab6a2d6687f23a9fdd8.png)
JVM专题四:JVM的类加载机制
Java中类的加载阶段 类加载 Java中的类加载机制是Java运行时环境的一部分,确保Java类可以被JVM(Java虚拟机)正确地加载和执行。类加载机制主要分为以下几个阶段: 加载(Loading):这个阶段&#x…...
![](https://img-blog.csdnimg.cn/img_convert/3ccac42fe95745c17bae3d2495e909ab.png)
Python爬取中国天气网天气数据.
一、主题式网络爬虫设计方案 1.主题式网络爬虫名称 名称:Python爬取中国天气网天气数据 2.主题式网络爬虫爬取的内容与数据特征分析 本次爬虫主要爬取中国天气网天气数据 3.主题式网络爬虫设计方案概述(包括实现思路与技术难点) reques…...
![](https://img-blog.csdnimg.cn/direct/be84a458b020459290e65ac3dabbeadd.png#pic_center)
EXCEL快速填充空白内容
** EXCEL快速填充空白内容 ** 1.全选所有需要填充的内容,按住电脑的F5或者CTRLG点击定位 2.可以看到空白处被自动选定,之后按电脑和⬆,最后CTRLenter 可以看到空白处已经被填充。...
![](https://img-blog.csdnimg.cn/direct/bf3dab09267e42d596249b04b65d9677.png)
CBSD创建和管理bhyve容器Ubuntu@FreeBSD
bhyve介绍:bhyve:FreeBSD下的原生虚拟机管理器_freebsd 虚拟化平台bhyve-CSDN博客 两个bhyve的管理软件:使用bvm管理bhyve虚拟机管理系统FreeBSD-CSDN博客 vm-bhyve:bhyve虚拟机的管理系统FreeBSD-CSDN博客 现在,我…...
![](https://www.ngui.cc/images/no-images.jpg)
STM32开发实战:SPI接口在W25Q64 Flash存储器中的应用
摘要 本文将深入探讨STM32微控制器如何利用SPI接口与W25Q64 Flash存储器进行通信。W25Q64是一款常用的SPI串行Flash存储器,具有8Mbit的存储容量。本教程将指导读者完成硬件连接、SPI配置、读写操作,并提供实际的代码实现。 1. SPI接口概述 SPI是一种串…...
![](https://www.ngui.cc/images/no-images.jpg)
python一些进阶用法:hook 钩子函数以及Registry机制
写在前面 一句话讲,register机制 和 hook 都是函数/类 调用和传参机制的一种灵活运用,将函数作为传参对象,进行回调和封装,通常扩展了或修改了原始函数的行为;这些高级用法都是编程经验中沉淀下来的常用范式࿰…...
![](https://img-blog.csdnimg.cn/direct/5660f59a63564a53846142f6f4ec3776.png)
工作实践:11种API性能优化方法
一、索引优化 接口性能优化时,大家第一个想到的通常是:优化索引。 确实,优化索引的成本是最小的。 你可以通过查看线上日志或监控报告,发现某个接口使用的某条SQL语句耗时较长。 此时,你可能会有以下疑问ÿ…...
![](https://img-blog.csdnimg.cn/direct/d2b88f7180d34c3fadf4b8e7ecc8ffd2.png)
正版软件 | WIFbox:智能化文件管理工具,让效率与隐私并行
在数字化办公日益普及的今天,文件管理成为了提升工作效率的关键。WIFbox 一款智能文件管理工具,利用强大的人工智能技术,帮助您快速对文件进行分类,完成复杂的智能文件分类任务。 智能分类,效率倍增 WIFbox 通过精细化…...
![](https://www.ngui.cc/images/no-images.jpg)
Postman接口工具实战
为了更好地展示Postman接口测试的实战过程,我将以一个简单的实战示例来说明如何使用Postman完成一个API的测试。假设我们要测试一个假想的天气查询API,该API允许用户通过城市名查询天气情况。我们将执行以下步骤: 1. 准备工作 确保已经安装…...