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

图论第一天

在单位摸鱼,地铁上看了个开始,图论开了个头,后面也希望能往这个方向上转,努努力吧。

一周没做题啦,后面坚持继续做题+二刷,接着记录每一天!!!加油!!!

DFS和BFS起步:

797.所有可能的路径

DFS最基本应用

class Solution {
public:vector<vector<int>>result;vector<int>path;vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {path.push_back(0);findpath(graph,0);return result;}void findpath(vector<vector<int>>& graph,int cur){if(cur == graph.size() - 1){result.push_back(path);return;}for(int i = 0;i < graph[cur].size();i++){path.push_back(graph[cur][i]);findpath(graph,graph[cur][i]);path.pop_back();}}
};

200.岛屿数量

DFS思路主要还是要和回溯放一块搞

class Solution {
public:int result = 0;int neighbor[4][2] = {1,0,-1,0,0,1,0,-1};int numIslands(vector<vector<char>>& grid) {int x = grid.size();int y = grid[0].size();vector<vector<bool>>visited(x,vector<bool>(y,false));for(int n = 0;n < x; n++){for(int m = 0; m < y;m++){if(grid[n][m] == '1' && visited[n][m] == 0){visited[n][m] = 1;result++;dfs(grid,visited,n,m);}}}return result;}void dfs(vector<vector<char>>& grid,vector<vector<bool>>& visited,int x,int y){for(int i = 0;i < 4;i++){int nextx = x + neighbor[i][0];int nexty = y + neighbor[i][1];if(nextx < 0 || nexty < 0 || nextx >= grid.size() || nexty >= grid[0].size())continue;if(visited[nextx][nexty] == 0 && grid[nextx][nexty] == '1'){visited[nextx][nexty] = 1;dfs(grid,visited,nextx,nexty);}}}
};

BFS主要是while循环

class Solution {
public:int result = 0;int neighbor[4][2] = {1,0,0,1,-1,0,0,-1};int numIslands(vector<vector<char>>& grid) {int n = grid.size();int m = grid[0].size();vector<vector<bool>>visited(n,vector<bool>(m,false));for(int i = 0;i < n;i++){for(int j =0;j <m;j++){if(visited[i][j] == 0 && grid[i][j] == '1'){result++;bfs(grid,visited,i,j);}}}return result;}void bfs(vector<vector<char>>& grid, vector<vector<bool>> &visited,int x,int y){queue<pair<int,int>>que;que.push({x,y});visited[x][y] = 1;while(!que.empty()){pair<int,int>cur = que.front();que.pop();for(int i = 0;i < 4;i++){int nextx = cur.first + neighbor[i][0];int nexty = cur.second + neighbor[i][1];if(nextx < 0 || nexty < 0 || nextx >= grid.size() || nexty >= grid[0].size())continue;if(visited[nextx][nexty] == 0 && grid[nextx][nexty] == '1'){que.push({nextx,nexty});visited[nextx][nexty] = 1;}}}}
};

今天就这两道题,明天接着来~摸鱼!!!

相关文章:

图论第一天

在单位摸鱼&#xff0c;地铁上看了个开始&#xff0c;图论开了个头&#xff0c;后面也希望能往这个方向上转&#xff0c;努努力吧。 一周没做题啦&#xff0c;后面坚持继续做题&#xff0b;二刷&#xff0c;接着记录每一天&#xff01;&#xff01;&#xff01;加油&#xff0…...

革新风暴来袭:报事报修系统小程序如何重塑报事报修体验?

随着数字化、智能化的发展&#xff0c;已经应用在我们日常生活和工作的方方面面。那么&#xff0c;你还在为物业报修而头疼吗&#xff1f;想象一下&#xff0c;家里的水管突然爆裂&#xff0c;你急忙联系物业&#xff0c;时常面临物业电话忙音、接听后才进行登记繁琐的报修单、…...

linux各个日志的含义 以及使用方法

在Linux系统上&#xff0c;系统日志文件通常存储在/var/log/目录下。可以通过查看这些日志文件来了解系统的操作记录、错误信息和其他相关信息。以下是一些常见的系统日志文件以及它们包含的信息&#xff1a; /var/log/messages&#xff1a;这是一个常见的系统日志文件&#xf…...

详解 Spark 核心编程之 RDD 持久化

一、问题引出 /** 案例&#xff1a;对同一份数据文件分别做 WordCount 聚合操作和 Word 分组操作 期望&#xff1a;针对数据文件只进行一次分词、转换操作得到 RDD 对象&#xff0c;然后再对该对象分别进行聚合和分组&#xff0c;实现数据重用 */ object TestRDDPersist {def …...

创新融合,5G+工业操作系统引领未来工厂

为加速企业完成生产制造自动化和经营管理自动化&#xff0c;从而走向未来工厂&#xff0c;蓝卓不断探索supOS工业操作系统与前沿技术的的创新融合&#xff0c;而5G技术为工业操作系统提供了更多元化的赋能手段和想象空间。目前&#xff0c;supOS围绕生产、安全、质检、监控等领…...

自监督表示学习和神经音频合成实现语音修复

关键词&#xff1a;语音修复、自监督模型、语音合成、语音增强、神经声码器 语音和/或音频修复的目标是增强局部受损的语音和/或音频信号。早期的工作基于信号处理技术&#xff0c;例如线性预测编码、正弦波建模或图模型。最近&#xff0c;语音/音频修复开始使用深度神经网络&a…...

【论文复现|智能算法改进】融合黑寡妇思想的蜣螂优化算法

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】蜣螂优化算法&#xff08;DBO&#xff09;原理及实现 2.改进点 ICMIC混沌映射 z n 1 sin ⁡ ( α z n ) , α ∈ ( 0 , ∞ ) (1) z_{n1}\sin(\frac{\alpha}{z_n}),\alpha\in(0,\infty)\ta…...

Unity + 雷达 粒子互动(待更新)

效果预览: 花海(带移动方向) VFX 实例 脚本示例 使用TouchScript,计算玩家是否移动,且计算移动方向 using System.Collections; using System.Collections.Generic; using TouchScript; using TouchScript.Pointers; using UnityEngine; using UnityEngine.VFX;public …...

英语翻译程序,可以对用户自己建立的词汇表进行增删查改

⑴ 自行建立一个包含若干英文单词的词汇表文件&#xff0c;系统初始化时导入内存&#xff0c;用于进行句子翻译。 ⑵ 用户可以输入单词或者句子&#xff0c;在屏幕上显示对应翻译结果。 ⑶ 用户可对词汇表进行添加和删除&#xff0c;并能将更新的词汇表存储到文件中。 #defi…...

Django ORM魔法:用Python代码召唤数据库之灵!

探索Django ORM的神奇世界&#xff0c;学习如何用Python代码代替复杂的SQL语句&#xff0c;召唤数据库之灵&#xff0c;让数据管理变得轻松又有趣。从基础概念到高级技巧&#xff0c;阿佑带你一步步成为Django ORM的魔法师&#xff0c;让你的应用开发速度飞起来&#xff01; 文…...

JetBrains Mono字体下载及安装

百度云字体下载 提取码&#xff1a;zida 1.mac 安装 选择文件夹中的所有字体文件&#xff0c;然后双击它们。点击“安装字体”按钮。 2.windows 安装 选择文件夹中的字体文件&#xff0c;右键单击其中任何一个&#xff0c;然后从菜单中选择“安装”。 3.linux 安装 将字体…...

【OS】AUTOSAR OS系统调用产生Trap的过程详解

目录 前言 正文 1.Os_Hal_Trap使用示例 2. Os_Hal_Trap的定义 3. syscall详解详解...

Java中的异常处理机制

在Java中&#xff0c;异常处理是一种重要的编程机制&#xff0c;用于处理程序运行时可能出现的错误情况。它提供了一种结构化的方式来处理异常情况&#xff0c;使程序能够更健壮、更易于维护。下面将从技术难点、面试官关注点、回答吸引力和代码举例四个方面来详细描述Java中的…...

什么是PLAB?

接上文PLAB---》 可以看到和TLAB很像&#xff0c;PLAB即 Promotion Local Allocation Buffers。用在年轻代对象晋升到老年代时。 在多线程并行执行YGC时&#xff0c;可能有很多对象需要晋升到老年代&#xff0c;此时老年代的指针就"热"起来了&#xff0c;于是搞了个…...

复试不考机试,初试300分以上,上岸稳了?东北林业大学计算机考研考情分析!

东北林业大学&#xff08;Northeast Forestry University&#xff09;&#xff0c;简称东北林大&#xff08;NEFU&#xff09;&#xff0c;位于黑龙江省哈尔滨市&#xff0c;是一所以林科为优势、林业工程为特色的中华人民共和国教育部直属高校&#xff0c;由教育部、国家林业局…...

【30天精通Prometheus:一站式监控实战指南】第12天:windows_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…...

微信小程序的事件绑定方式

微信小程序的事件绑定方式主要包括以下几种&#xff0c;每种方式都有其特定的用法和特性&#xff1a; 基础绑定方式&#xff1a; bind&#xff1a;这是最基础的绑定方式&#xff0c;用于绑定事件处理函数。例如&#xff0c;bindtap用于绑定点击事件。当组件触发事件时&#xf…...

AR和AP重分类(Regroup)[FAGLF101/OBBU/OBBV]

一、为什么AR和AP科目需要重分类 1.1 执行操作的前提(重要) 存在AR的当月总余额在贷方&#xff08;客户贷项凭证、预收账款等&#xff09;或AP的当月总余额在借方&#xff08;供应商贷项凭证、预收账款等&#xff09;&#xff0c;这种情况下无法真实的反映出资产和负债情况&…...

进程——linux

目录 冯诺依曼体系结构&#xff08;计算机组成原理与体系结构&#xff09; 关于冯诺依曼&#xff0c;必须强调几点&#xff1a; 操作系统(Operator System) 概念 设计OS的目的 定位 如何理解 "管理" 总结 系统调用和库函数概念 承上启下 一、进程 基本概念…...

关于如何通过APlayer+MetingJS为自己的wordpress博客网页添加网易音乐播放器(无需插件)

本文转自博主的个人博客&#xff1a;https://blog.zhumengmeng.work,欢迎大家前往查看。 原文链接&#xff1a;点我访问 序言&#xff1a;最近在网上冲浪&#xff0c;发现大家的博客大部分都有一个音乐播放器能够播放音乐&#xff0c;随机我也开始寻找解决方法。可是找来找去我…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...